会者不难,这样的SQL语句怎么写?

mint 2006-09-11 08:50:55
现在有如下的表:

tb_item
ItemID userID targetID other
1 1 2 aaab
2 2 1 bbc
3 null null kkkk

表tb_user

UserID Name
1 SSS
2 MMM

需要通过SQL语句显示如下内容:
ItemID userName targetName other
1 SSS MMM aaab
2 MMM SSS bbc
3 null null kkkk
应当如何做?我主要是不懂第三记录当外键为空时如何解决?
...全文
221 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
chyliu 2006-09-11
  • 打赏
  • 举报
回复

select a.itemid,b.name,c.name,a.other from tb_item as a
left join
tb_user as b
on a.userid = b.userid
left join
tb_user as c
on a.targetid = c.userid
killxtt 2006-09-11
  • 打赏
  • 举报
回复
left join 是个好东东
jetdw 2006-09-11
  • 打赏
  • 举报
回复
就是用left join就可以了
chuifengde 2006-09-11
  • 打赏
  • 举报
回复
declare @a table(ItemID int, userID int, targetID int, other varchar(10))
insert @a select
1, 1, 2, 'aaab'
union all select 2, 2, 1, 'bbc'
union all select 3, null, null, 'kkkk'

declare @b table(UserID int, Name varchar(10))
insert @b select 1 ,'SSS'
union all select 2 ,'MMM'


select itemid,b.name username,c.name targetname,other from @a a left join @b b on a.userid=b.userid left join @b c on a.targetid=c.userid
WangZWang 2006-09-11
  • 打赏
  • 举报
回复
select a.ItemID,b.Name as userName,c.Name as targetName,a.other
from tb_item as left join tb_user as b on a.UserID=b.UserID
left join tb_user as c on a.UserID=c.UserID


wym840713 2006-09-11
  • 打赏
  • 举报
回复
targetName 哪里的?
hhjwyy 2006-09-11
  • 打赏
  • 举报
回复
左连了!!!
marco08 2006-09-11
  • 打赏
  • 举报
回复
用左外連嘛
ych3000 2006-09-11
  • 打赏
  • 举报
回复
顶 chyliu(随意行走) 的语句

34,587

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧