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