看下面的SQL..
SELECT t1.*
FROM table1 t1
INNER JOIN table2 t2 ON t1.user_id = t2.id, tables3 t3
WHERE t3.id = 999
这里有什么join?在 t1 和 t3 之间?我的意思是逗号是什么意思?
最佳答案
FROM
子句中的
,
是 CROSS JOIN
编写查询的更好方法是使用显式CROSS JOIN
:
SELECT t1.*
FROM table1 t1 INNER JOIN
table2 t2
ON t1.user_id = t2.id CROSS JOIN
tables3 t3
WHERE t3.id = 999 ;
如所写,查询没有意义。假设 t3.id = 999
为真且出现一次,那么这相当于:
SELECT t1.*
FROM table1 t1 INNER JOIN
table2 t2
ON t1.user_id = t2.id;
如果该值不存在,则不会返回任何行。
关于mysql - 2 个表之间的内部连接 - 奇怪的语法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42671375/