同一个表中的一个查询中有两个SELECT

时间:2013-04-20 09:53:34

标签: mysql select

我有一张桌子:

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

没用。

3 个答案:

答案 0 :(得分:1)

如果你一次只有一个父母(没有递归),那么这项工作是:

SELECT a.name name, b.name parent_name
FROM tablexyz a,tablexyz b where
a.id=5 AND a.parent_id=b.id;

答案 1 :(得分: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 FIDDLE

答案 2 :(得分:0)

这对我来说很好。请检查出来。

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

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