sql一对多包括自己?

时间:2015-05-31 14:07:08

标签: sql one-to-many

挣扎于一对多,还包括主记录而无需添加引用自身的详细记录?

select * from master m
inner join detail d on d.id2 = m.id
where d.id1 = 1

这将返回

2,John,1,2
4,Nancy,1,4

如何让它也返回

1,Jim,nul,nul

如果我将1,1记录添加到下面的细节中,它可以正常工作,但希望能够解决这个问题。

1,Jim
2,John
3,Fred
4,Nancy
5,Jen

详细

1,2
1,4
3,5

由于 格伦

1 个答案:

答案 0 :(得分:0)

我想你想要一个更复杂的on表达式:

select *
from master m inner join
     detail d
     on d.id2 = m.id or d.id1 = m.id
where d.id1 = 1;

您也可以将其写为:

     on m.id in (d.id1, d.id2)