3

我有一张桌子:

id | parent_id | name
1  | NULL      | audi
2  | 1         | a5
3  | 1         | a6
4  | NULL      | opel
5  | 4         | astra
6  | 4         | vectra

我想获取记录的名称和记录父级的名称。

一个示例是获取 id=5 的名称及其父名称。

id | name  | parent_name
5  | astra | opel

对此的 SQL 查询是什么?

我的查询:

SELECT name, parent_id FROM `cats` WHERE `id` = 5 OR `id` = 
cats.parent_id LIMIT 0 , 30

没用。

4

3 回答 3

1

这项工作是如果您一次只有 1 个父母(无递归):

SELECT a.name name, b.name parent_name
FROM tablexyz a,tablexyz b where
a.id=5 AND a.parent_id=b.id;
于 2013-04-20T09:57:48.043 回答
1

您可以使用以下查询:

SELECT T1.id, T1.name, T2.name as parentname
FROM TABLE1 T1
    INNER JOIN TABLE1 T2 ON T1.id = T2.parent_id
WHERE T2.ID = 5

SQL 小提琴

于 2013-04-20T10:01:02.723 回答
0

这对我来说很好。请检查一下。

select a.id,a.name,b.name as parent from cats a,cats b where b.id=a.parent_id;

您也可以添加任何其他条件。(确保使用正确的表标识符;ab

于 2013-04-20T10:08:04.447 回答