关于两个表连接查询的问题。

zhangweibing 2009-12-23 04:20:27
SQL server:
表1:表1的id2需要在表2中查出値name2。
select id,name1,id2 from biao1
id,name1,id2
1,aa1,11
2,aa2,22
3,aa3,11
....
表2:
select id2,name2 from biao2
id2,name2
11,bb1
22,bbx
33,bb3
......

能否通过表连接写一句的查询,查询结果为,查询结果的记录数与表1的记录个数相同,显示体现id2的値name2。
id,name1,id2,name2
1,aa1,11,bb1
2,aa2,22,bbx
3,aa3,11,bb1
问:select查询语句如何写?
谢谢!
...全文
68 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
sunny51 2009-12-23
  • 打赏
  • 举报
回复
select T1.id,T1.name1,T1.id2,T2.name2
From biao1 T1
Left Join biao2 T2 On T1.id2 = T2.id2
荷包蛋他娘 2009-12-23
  • 打赏
  • 举报
回复
left join...
dawugui 2009-12-23
  • 打赏
  • 举报
回复
create table biao1(id int,name1 varchar(10),id2 int) 
insert into biao1 values(1,'aa1',11)
insert into biao1 values(2,'aa2',22)
insert into biao1 values(3,'aa3',11)
create table biao2(id2 int,name2 varchar(10))
insert into biao2 values(11,'bb1')
insert into biao2 values(22,'bbx')
insert into biao2 values(33,'bb3')
go

select t1.id,t1.name1,t1.id2,isnull((select name2 from biao2 t2 where id2 = t1.id2),'') name2 from biao1 t1
/*
id name1 id2 name2
----------- ---------- ----------- ----------
1 aa1 11 bb1
2 aa2 22 bbx
3 aa3 11 bb1

(所影响的行数为 3 行)
*/

select t1.id,t1.name1,t1.id2,isnull(name2,'') name2
from biao1 t1 left join biao2 t2 on t1.id2 = t2.id2
/*
id name1 id2 name2
----------- ---------- ----------- ----------
1 aa1 11 bb1
2 aa2 22 bbx
3 aa3 11 bb1

(所影响的行数为 3 行)
*/

drop table biao1 ,biao2
laker_914 2009-12-23
  • 打赏
  • 举报
回复

select t1.id,t1.name1,t1.id2 ,t2.name2 from biao1 t1 ,biao2 t2 where t1.id2 = t2.id2
shenzhenNBA 2009-12-23
  • 打赏
  • 举报
回复
学习了
dawugui 2009-12-23
  • 打赏
  • 举报
回复
select t1.id,t1.name1,t1.id2,(select name2 from biao2 t2 where id2 = t1.id2) name2 from biao1 t1
Mr_Nice 2009-12-23
  • 打赏
  • 举报
回复
select T1.id,T1.name1,T1.id2,T2.name2 
From biao1 T1
Left Join biao2 T2 On T1.id2 = T2.id2

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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