【发布时间】:2012-04-18 23:04:46
【问题描述】:
我最近尝试提取一些结果,并且正在努力找出正确的查询来完成它。我见过的所有例子,甚至我的 MySQL 书都显示如下:
SELECT *
FROM table_1
LEFT JOIN table_2 LEFT OUTER JOIN table_3 LEFT JOIN table_2
ON table_1.id = table_2.rel_id
AND table_1.id = table_3.rel_id
AND table_3.id = table_2.rel_id
WHERE table_1.some_col = some_vale;
这不起作用,相反,解决方案是:
SELECT *
FROM table_1
LEFT JOIN table_2 ON table_1.id = table_2.rel_id
LEFT OUTER JOIN table_3 ON table_1.id = table_3.rel_id
LEFT JOIN table_2 ON table_3.id = table_2.rel_id
WHERE table_1.some_col = some_value;
这两个SELECT 语句有什么区别?什么时候应该使用每个?怎么办
您确定连接的工作方式?
【问题讨论】:
-
你确定这有效吗?当我运行这样的代码时,我得到:“ERROR 1066 (42000): Not unique table/alias: 'table_2'” for mysql Ver 14.14 Distrib 5.1.61, for debian-linux-gnu (x86_64) using readline 6.2
-
不同的是第一次查询有语法错误。第二个几乎是正确的;只需添加表别名,有两个
table_2。 -
其他人怎么说。
ON与连接一起使用。您可以在 ON 部分有多个条件,但不能真正用于连接多个表。
标签: mysql join left-join outer-join