Tabellen:JOIN Funktionalität zwischen mehreren Tabellen
Kunde
CID Name
1 A
2 B
3 C
4 D
5 E
6..(And so on)
Besuchen
VID CID type
1 1 Med
2 3 Non
3 2 Non
4 6 Med
5 4 Med
6..(And so on)
Zahlung
PID CID amount
1 1 10
2 1 20
3 2 30
4 2 40
5 3 50
6..(And so on)
gewünschte Ausgabe:
CID Name type amount
1 A Med 10
1 A Med 20
4 D Med NULL
(And so on..)
Abfrage:
SELECT DISTINCT
C.client_id
,C.name
,V.type
,P.payment
FROM Clients C
INNER JOIN Visit V
ON C.cid=V.cid
LEFT JOIN Payment P
ON V.cid=P.cid
ich JOIN einen LEFT verwendet, weil ich will sehen, wer Zahlungen und wer nicht.
Frage: Ziehen LINKS (oder Outer Joins) Daten auf der Basis der gemeinsamen IDs in der CID der linken Tabelle, die aus vorangegangenen INNER JOINS resultieren (die gemeinsame Ergebnismenge)? Oder betrachten sie ALLE IDs in der linken Tabelle und ignorieren die INNER JOINS Ergebnisse insgesamt? Ich möchte nur Zahlungsdetails der Kunden, die in den inneren Verbindungen und nicht außerhalb vorhanden sind.
ist, warum die Reihenfolge, in der sie auch zusammen Angelegenheiten verwendet? LINKS VERBINDEN in der Art und Weise, auf die ich versuche, Ergebnisse zu erhalten, sollte nach all den INNEREN VERBINDUNGEN sein? – AS91
Angelegenheiten in dem Sinne, wie sie durch die "ON" -Klausel definiert sind, und von was zu welcher Tabelle, aber die Reihenfolge der Erscheinung in der Abfrage ist irrelevant, nur die logische Übereinstimmung der Datensätze ist. –
@AmulyaSharma Antwort aktualisiert, mit hoffentlich hilfreichem Diagramm. – GavinCattell