在一个连接语句上连接多个表?
Joining multiple tables on one join statement?
是否可以执行以下操作join
?
Select *
From table1
Inner join table2 on table1.pk = table2.fk
Inner join table3 on table2.pk = table3.fk and table1.pk = table3.fk
通常我只在一个 join
语句中使用两个表。最后一条语句有三个表。
就这样:
SELECT *
FROM table1
INNER JOIN table2
ON table1.pk = table2.fk
INNER JOIN table3
ON table1.pk = table3.fk
AND table2.pk = table3.fk
旁注
理论上,您可以连接任意数量的表 - 请注意,连接的表越多,性能受到的负面影响就越大。
此时最好仔细考虑您正在构建的查询,并考虑将其分解为更小的查询,因为这样会更高效。
是否可以执行以下操作join
?
Select *
From table1
Inner join table2 on table1.pk = table2.fk
Inner join table3 on table2.pk = table3.fk and table1.pk = table3.fk
通常我只在一个 join
语句中使用两个表。最后一条语句有三个表。
就这样:
SELECT *
FROM table1
INNER JOIN table2
ON table1.pk = table2.fk
INNER JOIN table3
ON table1.pk = table3.fk
AND table2.pk = table3.fk
旁注
理论上,您可以连接任意数量的表 - 请注意,连接的表越多,性能受到的负面影响就越大。
此时最好仔细考虑您正在构建的查询,并考虑将其分解为更小的查询,因为这样会更高效。