我这样做后,我的怀疑加剧了:
select name
from Highschooler
where ID in(select Friend.ID2
from Highschooler left join Friend
on Friend.ID1 = '1911' or Friend.ID1 = '1689');
可以找到表格here
预期结果是正确的,并尊重此条款: 找到与名为Gabriel的人成为朋友的所有学生的姓名。
请注意,我没有对表格进行任何引用 Highschooler.ID
这对我来说似乎很直观,但后来它让我觉得Highschooler表没有在我的工作台中选择ID作为主键。
那么,在进行左连接时,mysql如何知道我想将来自highschooler的ID与来自Friend的列配对? 这些表没有任何共同的列名。所以我知道sql可以尝试将来自Highschooler的成绩与来自Friend的ID1配对。
答案 0 :(得分:0)
答案是MySQL不知道如何连接表。你必须告诉MySQL如何加入表。如果是外连接,请使用on
子句。但是,在这种特殊情况下,您不需要外连接,因为您需要友元表中的ID。