Meine Zweifel aufwirft, nachdem ich dies tat:Primärschlüssel von LEFT JOIN
select name
from Highschooler
where ID in(select Friend.ID2
from Highschooler left join Friend
on Friend.ID1 = '1911' or Friend.ID1 = '1689');
Die Tabellen können here
Das erwartete Ergebnis war richtig und respektiert diese Klausel zu finden: die Namen finden von allen Schülern, die mit jemandem namens Gabriel befreundet sind.
Beachten Sie, dass ich keinen Hinweis auf den Tisch gemacht hat Highschooler.ID
Das schien mir intuitiv, aber dann hat mir denken, wie highschooler Tabellen-ID nicht als Primärschlüssel in meiner Werkbank ausgewählt haben.
Also, wenn mysql eine Linke Join tut, wie weiß Mysql, dass ich ID von Highschooler mit einer Spalte von Friend? Die Tabellen haben keinen gemeinsamen Spaltennamen. Also für alle ich weiß sql könnte versuchen, Klasse von Highschooler, mit ID1 von Friend.
Was versuchen Sie zu erreichen? Und Ihre linke Verbindung hat keine Verbindungsbedingung zwischen zwei Tabellen. – Viki888
@ Viki888 Es tut mir leid, ich habe weitere Informationen hinzugefügt. – Souza