mysql - 左连接的主键

标签 mysql database

在我这样做之后,我的疑问出现了:

select name
from Highschooler
where ID in(select Friend.ID2
            from Highschooler left join Friend
            on Friend.ID1 = '1911' or Friend.ID1 = '1689');

可以找到表格 here

预期的结果是正确的,并且尊重这个条款: 找出所有与名叫加布里埃尔的人是 friend 的学生的名字。

请注意,我没有对表Highschooler.ID 做任何引用

这对我来说似乎很直观,但后来我开始思考,因为 Highschooler 表在我的工作台中没有选择 ID 作为主键。

那么,当进行左连接时,mysql 如何知道我想将 highschooler 的 ID 与 Friend 的列配对? 这些表没有任何共同的列名。所以据我所知,sql 可以尝试将 Highschooler 的成绩与 Friend 的 ID1 配对。

最佳答案

答案是 MySQL 不知道如何连接表。你必须告诉 MySQL 如何连接表。如果是外部联接,请使用 on 子句。但是,在这种特殊情况下,您不需要外部联接,因为您需要来自 friend 表的 ID。

关于mysql - 左连接的主键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41396063/

相关文章:

PHP/MySQL 如何让我的评论和回复正确显示?

PHP fatal error : Call to undefined function mysql_connect()

mysql - 无论如何,我可以使用单个 MySQL 查询在多个表中插入记录吗?

php - 使用终端在MySQL中创建的数据库与PhpMyAdmin中显示的数据库是否不同?

php - 需要帮助在 HTML 中设置 PHP 样式

Android 日期查询无法正常工作

用于抽象针对 MSSQLS2008 和 SQLite 的调用的 C++ 库?

php - 如何使用高级 ORDER BY 情况执行查询?

php - xampp mysql : select command denied

mysql - 从多个嵌套记录加载记录的复杂查询