SQL Inner连接两个以上的表

Ben*_*rce 56 sql inner-join

我目前可以通过以下方式查询外键/主键相等的两个表的连接.

 $result = mysql_query("SELECT * FROM `table1` 
                         INNER JOIN 
                       `table2` ON table1.primaryKey=table2.table1Id");
Run Code Online (Sandbox Code Playgroud)

我想将它扩展到多个表(都使用相同的外键).我正在尝试以下代码,它没有返回任何内容.谁能指出我做错了什么?

 $result = mysql_query("SELECT * FROM `table1` 
                        INNER JOIN `table2` 
                        INNER JOIN table3 
                        ON table1.primaryKey=table2.table1Id=table3.table1Id");
Run Code Online (Sandbox Code Playgroud)

Ale*_*lex 128

SELECT * 
FROM table1 
INNER JOIN table2
      ON table1.primaryKey=table2.table1Id
INNER JOIN table3
      ON table1.primaryKey=table3.table1Id
Run Code Online (Sandbox Code Playgroud)

  • 有人可以帮我这个吗?这是否与`SELECT*FROM table1 INNER JOIN table2 INNER JOIN table3 ON table1.primaryKey = table2.table1Id AND table1.primaryKey = table3.table1Id`相同? (6认同)

Har*_*eja 25

这是一个连接三个或更多表的通用SQL查询语法.此SQL查询应该适用于所有主要关系数据库,例如MySQL,Oracle,Microsoft SQLServer,Sybase和PostgreSQL:

SELECT t1.col, t3.col FROM table1 join table2 ON table1.primarykey = table2.foreignkey
                                  join table3 ON table2.primarykey = table3.foreignkey
Run Code Online (Sandbox Code Playgroud)

我们首先连接表1和表2,它们生成一个临时表,其中包含table1和table2的组合数据,然后将其连接到table3.这个公式可以扩展到3个以上的表到N个表,你只需要确保SQL查询应该有N-1个连接语句才能加入N个表.比如加入两个表,我们需要1个连接语句,加入3个表我们需要2个连接语句.

  • 我能找到最清楚的答案.结构的好例子. (2认同)