查询结果不匹配所期望的结果
问题描述:
给定关系的人(ID,名称momid,dadid)查询结果不匹配所期望的结果
返回所有兄弟姐妹(即那些有共同momid,dadid)
例如1,2-
所以在这个查询中,我需要将所有兄弟姐妹连在一起,每行有一对兄弟姐妹。
我有解决方案还不是很确定,如果它works..it是
select p1.id,p2.id
from person p1,person p2
where p1.momid=p2.momid
and p1.dadid=p2.dadid
我相信这是写解决方案,但它导致一排1,1等是查询逻辑错了吗?
答
P1和P2可以是同一个人在您的查询,因为你不是说他们应该有所不同。你可以添加该条件,它应该工作得很好;
SELECT p1.id, p2.id
FROM person p1, person p2
WHERE p1.momid = p2.momid
AND p1.dadid = p2.dadid
AND p1.id <> p2.id
答
否则正确的,但你必须加入AND p1.id <> p2.id
像这样滤掉指的是同一个人记录:
select p1.id,p2.id
from person p1,person p2
where p1.momid=p2.momid
and p1.dadid=p2.dadid and p1.id <> p2.id