woo*_*ata 1 mysql inner-join multiple-tables
是否可以选择多个表并在其中一个表上进行内连接?例如
SELECT *
FROM table1 AS t1, table2 AS t2, table3 AS t3
INNER JOIN table4 AS t4 ON t1.row3 = t4.row3
INNER JOIN table5 AS t5 ON t1.row4 = t5.row4
WHERE ...
Run Code Online (Sandbox Code Playgroud)
这个特殊情况给我带来了麻烦.它给了我一个错误 - 'on clause'中的未知列"t1.row3".我不知道是否可以选择多个表但是在其中一个表上进行内连接.
该JOIN操作数比逗号更高的优先级,操作,因此连接是有效治疗的
t1, t2, (t3, t4, t5 ON ... )
Run Code Online (Sandbox Code Playgroud)
将括号括在t1,t2,t3附近.
SELECT *
FROM ( table1 AS t1, table2 AS t2, table3 AS t3 )
INNER JOIN table4 AS t4 ON t1.row3 = t4.row3
INNER JOIN table5 AS t5 ON t1.row4 = t5.row4
WHERE ...
Run Code Online (Sandbox Code Playgroud)
您还可以将查询编写为:
SELECT *
FROM table1 AS t1
INNER JOIN table2 AS t2
INNER JOIN table3 AS t3
INNER JOIN table4 AS t4 ON t1.row3 = t4.row3
INNER JOIN table5 AS t5 ON t1.row4 = t5.row4
WHERE ...
Run Code Online (Sandbox Code Playgroud)
因为逗号等同于没有连接条件的INNER JOIN.
| 归档时间: |
|
| 查看次数: |
10264 次 |
| 最近记录: |