如何从多个表中查询到需要的数据

myricemeli 2017-05-21 11:06:05
我的数据库中有“表1”和“表2”两张表,表1是所有数据的汇总表,表2是一个人物关系表,表示的是表1中任意两个人物的关系及关系值(SexMin和SexMax),“表3”是通过查询得到的结果表。
今天我试了好几种嵌套语句都无法查询出符合“表3”要求的结果,请大神帮帮我,谢谢。

...全文
185 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
ACMAIN_CHM 2017-05-23
  • 打赏
  • 举报
回复
select a.*,b.*,t.* from 表2 t inner join 表1 a on t.sexA=a.name inner join 表1 b on t.sexB=b.name
二月十六 2017-05-22
  • 打赏
  • 举报
回复
用mssql写的,大概差不多,楼主试试:
--测试数据
if not object_id(N'Tempdb..#T1') is null
drop table #T1
Go
Create table #T1([Name] nvarchar(22),[Min] decimal(18,7),[Max] decimal(18,7))
Insert #T1
select N'A1',0.2,1.1 union all
select N'A2',1.2,2.1 union all
select N'A3',2.2,3.1 union all
select N'A4',3.2,4.1 union all
select N'B1',4.2,5.1 union all
select N'B2',5.2,6.1 union all
select N'B3',6.2,7.1 union all
select N'B4',7.2,8.1 union all
select N'B5',8.2,9.1 union all
select N'B6',9.2,10.1 union all
select N'B7',10.2,11.1 union all
select N'B8',11.2,12.1
GO
if not object_id(N'Tempdb..#T2') is null
drop table #T2
Go
CREATE TABLE #T2
(
[SexA] NVARCHAR(22) ,
[SexB] NVARCHAR(22) ,
[SexMin] DECIMAL(18, 7) ,
[SexMax] DECIMAL(18, 7)
)
Insert #T2
select N'A1',N'B4',10.5,20.6 union all
select N'A2',N'B5',11.5,21.6 union all
select N'A3',N'B6',12.5,22.6 union all
select N'A4',N'B7',13.5,23.6
Go
--测试数据结束
SELECT a.SexA ,
b.Min ,
b.Max ,
a.SexB ,
c.Min ,
c.Max ,
a.SexMin ,
a.SexMax
FROM #T2 a
JOIN #T1 b ON a.SexA = b.Name
JOIN #T1 c ON a.SexB = c.Name


56,679

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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