Выбрать одним запросом 2 связанные строки

AXP

Новичок
Выбрать одним запросом 2 связанные строки

Все привет. Вот возник у меня такой вопрос по MySQL:

Есть таблица с древовидной структурой.
В ней есть поня id, parent_id, name, ...

Теперь вопрос: Возможно ли одним запросом выбрать 2 строки: элемент и его родитель (по parent_id), зная id элемента?

На пример:
id parent_id name
1 0 name1
2 1 name 2

известен id = 2. нужно выбрать его и его родителя, т е 2 строки.

Заранее спасибо.
 

Mols

Новичок
Если надо именно строками то что-то вроде
[SQL]
select * from `table` where id =2
UNION
select * from `table` where id =
(select parent_id from `table` where id = 2)
[/SQL]
Но можно ведь джойнить...
 

findnext

Новичок
[sql]
SELECT b.* FROM `table` as a JOIN `table` as b ON a.id=b.parent_id WHERE a.id=b.parent_id
[/sql]
 

Adelf

Administrator
Команда форума
ON a.id = b.parent_id
WHERE a.id = b.parent_id
оО

Да и "SELECT *" - весьма спорно :)

Хотя бы так:
SELECT a.name name, b.name parentName
FROM `table` AS a
JOIN `table` AS b ON a.id = b.parent_id
WHERE a.id = 2
 

findnext

Новичок
Adelf
а знаешь для чего во WHERE дополнительный WHERE a.id = b.parent_id ?
 

cDLEON

Онанист РНРСlub
findnext
А почему не WHERE b.parent_id!=NULL ?

-~{}~ 07.10.09 14:08:

Или вообще вместо такого джойна, использовать FROM a,b ?
 
Сверху