手机
当前位置:查字典教程网 >编程开发 >数据库其他 >交叉表查询sql语句
交叉表查询sql语句
摘要:表一:组名成员1id成员2id成员3id示例数据:冲锋组123后卫组234表二:成员id成员姓名示例数据:1张三2李四3王五4陆二要求结果冲...

表一:

组名

成员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

【交叉表查询sql语句】相关文章:

多条件查询的程序

sql语句中where 1=1的作用

关于ADOX的相关知识

Sql语句求最小可用id

MSSQL内连接inner join查询方法

数据库查询性能需注意几点经验

SQL查询连续号码段的巧妙解法

几种常用DB驱动和DB连接串小结

YII2数据库查询实践

取随机记录的语句

精品推荐
分类导航