如何在同一个表中查找父级和子级

cedebl8k  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(390)

我需要在下表找到父母和孩子。我试着用下面的查询。但它抛出了一个错误
[错误]1235-此版本的mariadb尚不支持“limit&in/all/any/some子查询”
我需要找到所有的父母,直到它回复空。请帮我找到那个。

SELECT id, name 
FROM categories 
WHERE id IN (SELECT id FROM categories WHERE parentid IS NULL LIMIT 1)
UNION ALL
SELECT cat.id, cat.name
FROM categories as cat,
     categories 
WHERE categories.id = cat.parentid


`

u4vypkhs

u4vypkhs1#

您可以通过下面的查询来实现这一点:此查询显示所有子项及其父项名称。这将导致多行。

SELECT child.id
    ,child.NAME
    ,parent.NAME
FROM categories AS parent
LEFT JOIN categories AS child ON child.parentid = parent.Id

按此方式订购,但未经测试

SELECT child.id
    ,child.NAME
    ,parent.NAME
FROM categories AS parent
LEFT JOIN categories AS child ON child.parentid = parent.Id
ORDER BY coalesce(parent.id, child.id)
    ,parent.id IS NOT NULL
    ,child.id

相关问题