SQL语句如何把两个查询结果横向连接

XTMENG 2008-10-31 10:56:28
比如第一个表T1查询结果为:
BH TNAME SEX
01 张三 男
02 李四 男
03 王五 女

第二个表T2查询结果是:

DZ ZW
西环路 学生
东环路 工程师
南环路 总经理

如何用语句把表T1,T2 连成

BH TNAME SEX DZ ZW
01 张三 男 西环路 学生
02 李四 男 东环路 工程师
03 王五 女 南环路 总经理


...全文
4388 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
lin3360827 2021-07-13
  • 打赏
  • 举报
回复

横向拼接如下

select * from 
(select s1 from te1) t1
  full join 
(select s2 from te2) t2
on t1.s1=t2.s2
wangyongzhong 2009-06-02
  • 打赏
  • 举报
回复
XUEXI
blacksapper 2008-11-01
  • 打赏
  • 举报
回复
主要是join on 语句。你翻下书。LS的几个达人给的很全面了
czx33859066 2008-10-31
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 mustudent 的回复:]
SELECT *
FROM
(
select *
from t1
where <1>
) A
LEFT OUTER JOIN
(
select *
from t2
where <2>
)B
ON ...
[/Quote]
up
mustudent 2008-10-31
  • 打赏
  • 举报
回复
SELECT *
FROM
(
select *
from t1
where <1>
) A
LEFT OUTER JOIN
(
select *
from t2
where <2>
)B
ON ...
cxmcxm 2008-10-31
  • 打赏
  • 举报
回复
应该需要关连的字段
XTMENG 2008-10-31
  • 打赏
  • 举报
回复
但我这两个表查询条件是不一样的,
比如

select *
from t1
where <1>

select *
from t2
where <2>

这里<1>和<2>条件是不一样的?那么又该如何使用left join命令呢??




XTMENG 2008-10-31
  • 打赏
  • 举报
回复
对了,两个表都有BH字段,用BH连接,但第二个表不需显示BH
douven 2008-10-31
  • 打赏
  • 举报
回复
应该是T2表还少了个与T1表相关联的字段
liangCK 2008-10-31
  • 打赏
  • 举报
回复
--> liangCK小梁 于2008-10-31
--> 生成测试数据: @T1
DECLARE @T1 TABLE (BH VARCHAR(2),TNAME VARCHAR(4),SEX VARCHAR(2))
INSERT INTO @T1
SELECT '01','张三','男' UNION ALL
SELECT '02','李四','男' UNION ALL
SELECT '03','王五','女'
--> 生成测试数据: @T2
DECLARE @T2 TABLE (DZ VARCHAR(6),ZW VARCHAR(6))
INSERT INTO @T2
SELECT '西环路','学生' UNION ALL
SELECT '东环路','工程师' UNION ALL
SELECT '南环路','总经理'

--SQL查询如下:

SELECT ID=IDENTITY(INT,1,1),* INTO #T1 FROM @T1;

SELECT ID=IDENTITY(INT,1,1),* INTO #T2 FROM @T2;

SELECT A.BH,A.TNAME,A.SEX,B.DZ,B.ZW
FROM #T1 AS A
LEFT JOIN #T2 AS B
ON A.ID=B.ID

/*
BH TNAME SEX DZ ZW
---- ----- ---- ------ ------
01 张三 男 西环路 学生
02 李四 男 东环路 工程师
03 王五 女 南环路 总经理

(3 行受影响)
*/
hyde100 2008-10-31
  • 打赏
  • 举报
回复
通过BH连接的话
SELECT 
BH, TNAME, SEX ,DZ, ZW
FROM T1
LEFT OUTER JOIN T2 ON T2.BH = T1.BH
wangzhenyue 2008-10-31
  • 打赏
  • 举报
回复
学习
mustudent 2008-10-31
  • 打赏
  • 举报
回复

--就是一對一的鏈接就可以了嗎 兩個表好像沒有什么關系啊!
hyde100 2008-10-31
  • 打赏
  • 举报
回复
两表应该有联系吧?学号?
liangCK 2008-10-31
  • 打赏
  • 举报
回复
你是通过什么字段来关联两个表的?..
you_tube 2008-10-31
  • 打赏
  • 举报
回复
这样也能连接??
Andy-W 2008-10-31
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 XTMENG 的回复:]
对了,两个表都有BH字段,用BH连接,但第二个表不需显示BH
[/Quote]

--> --> (Andy)生成测试数据 2008-10-31
Set Nocount On
declare @1 table([BH] nvarchar(2),[TNAME] nvarchar(2),[SEX] nvarchar(1))
Insert @1
select N'01',N'张三',N'男' union all
select N'02',N'李四',N'男' union all
select N'03',N'王五',N'女'

declare @2 table([BH] nvarchar(2),[DZ] nvarchar(3),[ZW] nvarchar(3))
Insert @2
select N'01',N'西环路',N'学生' union all
select N'02',N'东环路',N'工程师' union all
select N'03',N'南环路',N'总经理'

Select a.BH,a.TNAME,a.SEX,b.DZ,b.ZW
From @1 As a
Inner Join @2 As b On b.BH=a.BH
/*
BH TNAME SEX DZ ZW
---- ----- ---- ---- ----
01 张三 男 西环路 学生
02 李四 男 东环路 工程师
03 王五 女 南环路 总经理


*/


IT_zen 2008-10-31
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 XTMENG 的回复:]
两个好象是可以,但3个以上的表就不行了,有没有多个连接的办法?????
[/Quote]


SELECT T1.BH,T1.TNAME,T1.SEX,T2.DZ,T2.ZW,...,TN.字段
FROM FROM T1,T2,...,TN
where T1.BH=T2.BH and T1.BH=(...).BH and T1.BH=TN.BH

IT_zen 2008-10-31
  • 打赏
  • 举报
回复
--创建table 1
create table t1
(
BH nvarchar(2) not null,
TNAME NVARCHAR(20),
SEX NVARCHAR(2)
)
--插入数据
INSERT INTO T1(BH,TNAME,SEX)
SELECT '01','张三','男' union all
select '02','李四','男' union all
select '03','王五','女'
--创建 table 2
create table t2
(
BH nvarchar(2) NOT NULL,
DZ NVARCHAR(40),
ZW NVARCHAR(40)
)
--插入数据
INSERT INTO T2(BH,DZ,ZW)
SELECT '01','西环路','学生' union all
select '02','东环路','工程师' union all
select '03','南环路','总经理'

/* SQL语句1 */
SELECT T1.BH,T1.TNAME,T1.SEX,T2.DZ,T2.ZW FROM T1,T2
WHERE T1.BH=T2.BH

/*方法二*/
SELECT T1.BH,T1.TNAME,T1.SEX,T2.DZ,T2.ZW
FROM T1 inner join T2
on T1.BH=T2.BH

--删除两个表
DROP TABLE T1
DROP TABLE T2
XTMENG 2008-10-31
  • 打赏
  • 举报
回复
两个好象是可以,但3个以上的表就不行了,有没有多个连接的办法?????
加载更多回复(2)

34,576

社区成员

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

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