在我的MySQL中,使用单词JOIN或使用单词有什么区别:table1.id = table2.id
Table 1
id name
1 John Lennon
Table 2
id position
1 Singer
//然后调用JOIN有什么区别?
Select name, position
From Table1, Table2
Where Table1.id=Table2.id;
答案 0 :(得分:1)
如果是这种情况,则没有区别。 但是连接也可以是:INNER,OUTER(左外,右外,全外连接),LEFT,RIGHT。
答案 1 :(得分:1)
只要只有两个表就没有。如果还有更多,如果使用逗号分隔表,则可能会得到与预期不同的JOIN顺序。
来自manual:
INNER JOIN和(逗号)在没有的情况下在语义上是等价的 连接条件:两者之间产生笛卡尔积 指定的表(即第一个表中的每一行都是 加入第二个表格中的每一行。)
但是,逗号运算符的优先级小于INNER JOIN,CROSS JOIN,LEFT JOIN等等。如果你混合使用逗号连接 当有连接条件时,其他连接类型,错误 form可能会出现'on子句'中的未知列'col_name'。信息 关于这个问题的处理将在本节后面给出。
答案 2 :(得分:1)
使用JOIN
称为“显式连接”,或ANSI连接...用逗号分隔表,然后在WHERE
子句中链接它们称为“隐式”加入”。
ANSI连接被广泛认为是首选语法。当您需要开始添加外连接时,它更容易遵循,更不模糊,更一致。
此外,如果您使用隐式连接语法,如果您忘记链接WHERE
子句中的表,很容易以偶然的交叉连接结束。