sql关联查询

lt415630922 2012-09-27 01:21:12
如题:a表中数据为:
ID 内容
1 a
2 b
3 c

b表中数据为
id 内容 ID
1 99 2

其中b表中ID与a表中ID关联
然后我想显示出他们关联的数据
也就是
b.id b.内容 ID a.内容
1 99 2 b

然后我还想显示出没有关联 但是符合要求的数据 比如a表内容为c的数据
b.id b.内容 ID a.内容
1 99 2 b
null null 3 c
查询语句要怎么写
...全文
72 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
汤姆克鲁斯 2012-09-27
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

SQL code

declare @a table(id int, 内容 varchar(5))
insert into @a
select 1,'a' union all
select 2,'b' union all
select 3,'c'

declare @b table(id int, 内容 varchar(5),id2 int)
insert into @b values (1……
[/Quote]
试试这个。
汤姆克鲁斯 2012-09-27
  • 打赏
  • 举报
回复
3 c 为什么符合要求了?
1 a 为什么就不符合?求解释
-Tracy-McGrady- 2012-09-27
  • 打赏
  • 举报
回复

declare @a table(id int, 内容 varchar(5))
insert into @a
select 1,'a' union all
select 2,'b' union all
select 3,'c'

declare @b table(id int, 内容 varchar(5),id2 int)
insert into @b values (1,'99',2)
--第一个问题:
select a.*,b.内容 from @b a left join @a b on a.id2=b.id
--结果
id 内容 id2 内容
----------- ----- ----------- -----
1 99 2 b

(1 行受影响)

--第二个问题
select a.*,b.内容 from @b a left join @a b on a.id2=b.id
union all
select a.*,b.内容 from @b a right join @a b on a.id2=b.id where b.内容='c'
--结果
id 内容 id2 内容
----------- ----- ----------- -----
1 99 2 b
NULL NULL NULL c

(2 行受影响)

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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