MySQL: 多个表上的内部 JOIN 和外部 JOIN
MySQL: Inner JOIN and Outer JOIN on multiple tables
我有多个表:
A、B、C、D
我想在 A、B、C 上进行内部联接,并在结果与 D 上进行外部联接。
我想最明显的方法是(跳过 SELECT 语句):
(A JOIN B JOIN C ON ...) table_alias
LEFT JOIN D ON ...
但我想知道我是否可以做类似的事情:
A
JOIN B
JOIN C
LEFT JOIN D ON ...
我认为 MySQL 不喜欢它。如果有更好的方法请告诉我。
谢谢!
你想要的from
子句可以表示为:
FROM A JOIN
B
ON . . . JOIN
C
ON . . . LEFT JOIN
D
ON . . .
在 MySQL 中不需要括号来表达这一点。
您也可以像这样嵌套连接:
SELECT * FROM A JOIN (B, C) ON (A.a=B.a AND B.b=C.b) LEFT JOIN D ON C.c=D.c
我有多个表:
A、B、C、D
我想在 A、B、C 上进行内部联接,并在结果与 D 上进行外部联接。
我想最明显的方法是(跳过 SELECT 语句):
(A JOIN B JOIN C ON ...) table_alias
LEFT JOIN D ON ...
但我想知道我是否可以做类似的事情:
A
JOIN B
JOIN C
LEFT JOIN D ON ...
我认为 MySQL 不喜欢它。如果有更好的方法请告诉我。
谢谢!
你想要的from
子句可以表示为:
FROM A JOIN
B
ON . . . JOIN
C
ON . . . LEFT JOIN
D
ON . . .
在 MySQL 中不需要括号来表达这一点。
您也可以像这样嵌套连接:
SELECT * FROM A JOIN (B, C) ON (A.a=B.a AND B.b=C.b) LEFT JOIN D ON C.c=D.c