我正在获取树中所有节点的祖父母,如下所示:
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
)parent
和gp_id
。
我打算用 到UNION
第二个表(0,0)
,但无法弄清楚语法。这该怎么做?
只需做一个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
值。