读取数据

来源:百度知道 编辑:UC知道 时间:2024/05/20 20:12:52
现在有两个表:UserName 和 Gift 两个表
UserName:有ID 和 NetName两个字段
Gift :有SendNameID(不为空) 和 ReciveNameID (可以为空)
我自己的SQL语句读取
select a.NetName as aNetName,b.NetName as bNetName
from UserName as a,UserName as b,Gift
where Gift.SendNameID=a.ID and Gift.ReciveNameID=b.ID
如果是这样的话ReciveNameID为空的数据就读不出来了!!
如果把 Gift.ReciveNameID=b.ID 去掉的话,又会出现重复的语句

请教:怎么解决,,????谢谢!!!

select a.NetName as aNetName,b.NetName as bNetName
from UserName as a,UserName as b,Gift
where Gift.SendNameID=a.ID and Gift.ReciveNameID=b.ID
and Gift.ReciveNameID is not null
要是Gift.ReciveNameID 为空的数据你也想要的话就这么写
select a.NetName as aNetName,b.NetName as bNetName
from UserName as a,UserName as b,Gift
where (Gift.SendNameID=a.ID and Gift.ReciveNameID=b.ID)
or (Gift.ReciveNameID is null and Gift.SendNameID=a.ID )