【发布时间】:2017-06-08 11:33:05
【问题描述】:
我有以下查询:
SELECT *
FROM A
JOIN B ON A.id = B.a_id
JOIN C ON B.id = C.b_id
JOIN D ON C.id = D.c_id;
我需要将另一个表加入它 - 表 E。 但我需要在 B.id 和 E.a_id 上加入它。 我可以这样写查询吗:
SELECT *
FROM A
JOIN B ON A.id = B.a_id
JOIN C ON B.id = C.b_id
JOIN D ON C.id = D.c_id
JOIN E ON B.id = E.a_id;
这是正确的做法吗?
【问题讨论】:
-
是的。
ON子句可以引用FROM子句中已经定义的任何表。 -
@GordonLinoff - 从技术上讲并不完全正确。您可以参考已经加入的表。仅当您对
ON子句的顺序感到困惑时,才会注意到这一点。例如。在select * from t1 inner join t2 inner join t3 on t1.id = t3.id on t2.id = t3.id中,第一个on子句出错,因为t1不在范围内。
标签: sql database select join relational-database