香港云主机最佳企业级服务商!

ADSL拨号VPS包含了中国大陆(联通,移动,电信,)

中国香港,国外拨号VPS。

当前位置:云主机 > 数据库 >

电信ADSL拨号VPS
联通ADSL拨号VPS
移动ADSL拨号VPS

交叉表查询sql语句


时间:2020-11-19 14:18 作者:admin610456


表一:
组名
成员1id
成员2id
成员3id

示例数据:
冲锋组123
后卫组234

表二:
成员id
成员姓名

示例数据:
1张三
2李四
3王五
4陆二

要求结果

冲锋组张三李四王五
后卫组李四王五陆二
复制代码 代码如下:
--建立测试环境
CreateTable表1(组名varchar(10),成员1idvarchar(10),成员2idvarchar(10),成员3idvarchar(10))
--插入数据
insertinto表1
select'冲锋组','1','2','3'union
select'后卫组','2','3','4'
CreateTable表2(成员idvarchar(10),成员姓名varchar(10))
--插入数据
insertinto表2
select'1','张三'union
select'2','李四'union
select'3','王五'union
select'4','陆二'

--测试语句
selecta.组名,
成员1=(select成员姓名from表2bwherea.成员1id=b.成员id),
成员1=(select成员姓名from表2bwherea.成员2id=b.成员id),
成员1=(select成员姓名from表2bwherea.成员3id=b.成员id)
from表1a


--删除测试环境
DropTable表1
DropTable表2

/*
组名成员1成员1成员1
----------------------------------------
冲锋组张三李四王五
后卫组李四王五陆二

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

复制代码 代码如下:
select
a.组名,
成员1=max(caseb.成员id=a.成员1idthenb.成员姓名end),
成员2=max(caseb.成员id=a.成员2idthenb.成员姓名end),
成员3=max(caseb.成员id=a.成员3idthenb.成员姓名end),
from
表一a,
表二b
groupby
a.组名

复制代码 代码如下:
select
a.组名,
成员1=max(caseb.成员id=a.成员1idthenb.成员姓名end),
成员2=max(caseb.成员id=a.成员2idthenb.成员姓名end),
成员3=max(caseb.成员id=a.成员3idthenb.成员姓名end)
from
表一a,
表二b
groupby
a.组名

复制代码 代码如下:
selecta.组名,
成员1=(select成员姓名from表2bwherea.成员1id=b.成员id),
成员1=(select成员姓名from表2bwherea.成员2id=b.成员id),
成员1=(select成员姓名from表2bwherea.成员3id=b.成员id)
from表一a

复制代码 代码如下:
正解是
select表1.组名,
(select表1.成员姓名from表2bwhere表1.成员1id=表2.成员id)as成员1id,
(select表1.成员姓名from表2bwhere表1.成员2id=表2.成员id)as成员2id,
(select表1.成员姓名from表2bwhere表1.成员3id=表2.成员id)as成员3id
from表1,表2
(责任编辑:admin)






帮助中心
会员注册
找回密码
新闻中心
快捷通道
域名登录面板
虚机登录面板
云主机登录面板
关于我们
关于我们
联系我们
联系方式

售前咨询:17830004266(重庆移动)

企业QQ:383546523

《中华人民共和国工业和信息化部》 编号:ICP备00012341号

Copyright © 2002 -2018 香港云主机 版权所有
声明:香港云主机品牌标志、品牌吉祥物均已注册商标,版权所有,窃用必究

云官方微信

在线客服

  • 企业QQ: 点击这里给我发消息
  • 技术支持:383546523

  • 公司总台电话:17830004266(重庆移动)
  • 售前咨询热线:17830004266(重庆移动)