我老了,并且总是使用"+"符号来表示外部,但是这个sql在sql server中不起作用.有人可以帮助我将以下sql转换为新的"左外连接"格式.
select frdonmst.FRID,
fradrmst.adrseq,
fax.phone as fax,
phone.phone as phone
from frdonmst,
fradrmst,
frphnmst fax,
frphnmst phone
where frdonmst.frid = fradrmst.frid
and frdonmst.adrseq = fradrmst.adrseq
and ( frdonmst.frid = fax.frid(+)
and frdonmst.adrseq = fax.adrseq(+)
and fax.phtyp(+) = 'FAX1' )
and ( frdonmst.frid = phone.frid(+)
and frdonmst.adrseq = phone.adrseq(+)
and phone.phtyp(+) = 'D1' )
Run Code Online (Sandbox Code Playgroud) 下面是我的表的简化版本.
FRID, RELFRID, Relationship
123, 456, Husband/Wife
456, 123, Wife/Husband
345, 765, Brother/Sister
765, 345, Sister/Brother
Run Code Online (Sandbox Code Playgroud)
我想只拉一个关系的表示(只是每组两个记录中的一个).我尝试了很多东西,包括EXCEPT和SUBSELECTS,我尝试的所有东西都没有结果,因为左边的每个数字也表示在右边.知道如何获得我正在寻找的结果吗?我已经尝试了以下查询的每个组合.
select frid, relfrid from frrelmst
except
select frid, relfrid from frrelmst
where frid in (select relfrid from frrelmst)
order by frid, relfrid
Select frid, relfrid from frrelmst where
relfrid+frid not in (select frid+relfrid from frrelmst)
Run Code Online (Sandbox Code Playgroud)