时间:2021-05-23
表一:
组名
成员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
复制代码 代码如下:
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
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
如果使用sql语句做的话工作量太大了,于是尝试自己写一个交叉表的类,好二话不说,我们看看代码复制代码代码如下:/***基本交叉表*@authorhugh**/c
--查询数据库里所有表名和字段名的语句--SQL查询所有表名:SELECTNAMEFROMSYSOBJECTSWHERETYPE='U'SELECT*FROMI
查询语句的优化是SQL效率优化的一个方式,可以通过优化sql语句来尽量使用已有的索引,避免全表扫描,从而提高查询效率。最近在对项目中的一些sql进行优化,总结整
1.原始查询表结果2.理想查询表结果一很牛的朋友写的sql语句大笑,学习啦偷笑:selectuserpwd,username=stuff((select','+
Access数据库中通过SQL语句找到某一表是否存在的确是一件困难的事,按照下面的步骤执行并在程序中通过SQL语句查询表是否存在。 Access数据库虽然