Diese Frage ist ein wenig lang, so dass es klar wäre, danke im Voraus!MySQL Beitritt 3 Tabellen mit UNION
Einführung
Ich habe derzeit drei Tabellen eine many-to-many-Beziehung verwenden. Ich muss alle 3 Tabellen abfragen und sie in 1 Tabelle kombinieren.
Problem
Ich habe diese Abfrage versucht:
SELECT * FROM `login` LEFT JOIN membership ON login.id = membership.login_id UNION SELECT * FROM `login` RIGHT JOIN membership ON login.id = membership.login_id
Und es gibt:
+----+------+----------+
| id | name | group_id |
+----+------+----------+
| 1 | Tom | 6 |
| 2 | John | 8 |
| 3 | Jane | 4 |
+----+------+----------+
Frage
Ich brauche es auch die group_name
enthalten. Dies ist meine gewünschte Ausgabe:
+----+------+----------+------------+
| id | name | group_id | group_name |
+----+------+----------+------------+
| 1 | Tom | 6 | Red |
| 2 | John | 8 | Brown |
| 3 | Jane | 4 | Purple |
+----+------+----------+------------+
Tabellen
login
Tabelle
Eine Liste aller Benutzer mit Autoinkrement-ID
+----+------+
| id | name |
+----+------+
| 1 | Tom |
| 2 | John |
| 3 | Jane |
+----+------+
group
Tabelle
Eine Liste aller Gruppen mit der
group_id
undgroup_name
+----------+------------+
| group_id | group_name |
+----------+------------+
| 1 | Green |
| 2 | Blue |
| 3 | Yellow |
| 4 | Purple |
| 5 | Orange |
| 6 | Red |
| 7 | Pink |
| 8 | Brown |
+----------+------------+
membership
Tabelle
Speichern Informationen, auf die Benutzer t gehören o welche Gruppe
+----------+----------+
| login_id | group_id |
+----------+----------+
| 1 | 6 |
| 2 | 8 |
| 3 | 4 |
+----------+----------+
Generell sollten Sie in der 'FROM' Klausel Gebrauch machen, was Tabelle verwiesen wird "immer" vorhanden, und' LINKS JOIN' dann von dort - Es wird viel einfacher über Ihre tatsächlichen Datenverbindungen nachzudenken. –