如何结合 UNION 和 INNER JOIN?

Tim*_*Tim 5 mysql join union

我正在获取树中所有节点的祖父母,如下所示:

SELECT P.id, P.parent, GP.parent gp_id FROM product_groups P             
INNER JOIN product_groups GP ON P.parent = GP.id
Run Code Online (Sandbox Code Playgroud)

id=0表中没有条目 with ,但有一些 where parent=0,表示树的根。此查询不会获取这些行,因为没有祖父母可以加入它们。我希望返回这些行,同时使用0(or NULL)parentgp_id

我打算用 到UNION第二个表(0,0),但无法弄清楚语法。这该怎么做?

JNK*_*JNK 7

只需做一个LEFT JOIN

SELECT P.id, P.parent, GP.parent gp_id FROM product_groups P             
LEFT JOIN product_groups GP ON P.parent = GP.id
Run Code Online (Sandbox Code Playgroud)

这将返回所有行,P并且任何不匹配的行都GP将具有NULL值。