Ich habe 4 Tabellen, denen ich beitreten möchte, um die notwendigen Daten in ihnen zu bekommen.Wie verwende ich den linken äußeren Join nach dem linken Join für diese Tabellen?
Tabelle A.
id | name | deleted | amount | due_date | status
1 | a | 0 | 10 | 2016-07-18 | Unpaid
2 | b | 0 | 20 | 2016-07-19 | Unpaid
3 | c | 0 | 15 | 2016-07-18 | Unpaid
Tabelle B
id | name | due_date | status
1 | a | | Unpaid
2 | b | | Unpaid
3 | c | | Unpaid
4 | d | 2016-07-19 | Unpaid
Tabelle C
id | table_d_id | table_a_id
1 | 1 | 1
2 | 2 | 2
3 | 3 | 3
Tabelle D
id |
1
2
3
Was ich will, hier zu tun ist, um die Daten in Tabelle B mit DUE_DATE abzurufen und einer unbezahlten Status, und dass es nicht in Tabelle A gefunden
Meine aktuelle Abfrage:
SELECT A.*, B.*, C.*, D.*
FROM A
LEFT OUTER JOIN B ON B.name= A.name
INNER JOIN C ON A.id = C.id
INNER JOIN D ON C.id = D.id
WHERE A.deleted=0 AND ((B.due_date < "2016-07-20" AND B.status = "Unpaid") OR (A.due_date < "2016-07-20" AND A.status = "Unpaid"))
GROUP BY D.id
Was diese Abfrage derzeit tut, ist, dass es nur die Daten in den Tabellen mit Ausnahme von ID 4 bei Tabelle B erhält, die ich auch abrufen wollte, da es einen unbezahlten Status hat.
Das erste, was LEFT JOIN und LEFT OUTER JOIN beide gleich sind –
@DhavalBhavsar ich nicht wusste, dass ich google gerade überprüft und sah, dass OUTER alles aus beiden Tabellen bekommen verbindet. – hungrykoala