[英]SQL: new result row for each join
该表如下:
|child | parent|
|John | |
|Ivan | Ralph |
|Kat | Ivan |
我需要通过子名称检索子父条目和父祖父条目。
例如,Kat 结果应该是:
|Ivan | Ralph |
|Kat | Ivan |
尝试使用此查询:
SELECT * FROM people AS c1
LEFT JOIN people AS c2 ON c2.child = c1.parent WHERE c1.child = 'Kat'
但它将结果作为单行返回。
|child | parent| child | parent|
|Kat | Ivan | Ivan | Ralph |
我应该如何编写查询以便它在新行中返回整数?
您不需要连接,相关子查询将执行以下操作:
SELECT * FROM people
WHERE child = 'Kat' OR
child = (SELECT parent FROM people WHERE child = 'Kat')
假设每个孩子只有 1 个父母。
如果可以有更多的父母,则将=
更改为IN
:
SELECT * FROM people
WHERE child = 'Kat' OR
child IN (SELECT parent FROM people WHERE child = 'Kat')
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.