SQL三个表格做连接,查询不出来

jsitt 2012-05-17 09:51:55
表1
ksh xm
1001 张三
1002 李四
1003 王五
表2
ksh xx
1001 校1
1001 校2
1001 校3
1002 校2
1002 校3
1003 校3
1003 校2

表3
xx jh
校1 100
校2 90
校3 90

想查询出这样的结果
ksh xm xx jh
1001 张三 校1 100
1001 张三 校2 90
1001 张三 校3 90

请问怎么使用SQL语句呀,谢谢!
...全文
358 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
侯进录 2013-09-10
  • 打赏
  • 举报
回复
侯进录 2013-09-10
  • 打赏
  • 举报
回复
jsitt 2012-05-20
  • 打赏
  • 举报
回复
两个两个连接查询是可以出正确结果,三个连在一起就不行了:(
angel_447083039 2012-05-17
  • 打赏
  • 举报
回复
[Quote=引用楼主 的回复:]
表1
ksh xm
1001 张三
1002 李四
1003 王五
表2
ksh xx
1001 校1
1001 校2
1001 校3
1002 校2
1002 校3
1003 校3
1003 校2

表3
xx jh
校1 100
校2 90
校3 90

想查询出这样的结果
ksh xm xx jh
1001 张三 校1 100
1001 张三 ……
[/Quote]



SELECT 表1.ksh,表1.xm,表2.xx,表3.jh
FROM 表1 INNER JOIN 表2 ON 表1.ksh=表2.ksh
INNER JOIN 表3 .ksh WHERE 表1.XM='张三'



你试试 看 不行 的话 告诉我!
greenberet007 2012-05-17
  • 打赏
  • 举报
回复
1对多的关系,怎么也生成不了楼主想要的数据,关键问题是怎么处理中间那个表。
lifepassenger 2012-05-17
  • 打赏
  • 举报
回复
表2的设计是不是有问题?没有主关键字
jsitt 2012-05-17
  • 打赏
  • 举报
回复
这几种代码都会产生
1001 校1 100
1001 校1 90
1001 校1 90
1001 校2 100
1001 校2 90
1001 校2 90
:(
wuhailin010 2012-05-17
  • 打赏
  • 举报
回复
select a.*,c.* FROM a1 a LEFT JOIN a2 b ON a.ksh=b.ksh
LEFT JOIN a3 c on b.xx=c.xx WHERE xm='张三'
jsitt 2012-05-17
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]
select 表1.ksh,表1.xm,表2.xx,表3.jh from 表1,表2,表3 wher 表1.ksh==表2.ksh and 表2.xx=表3.xx and 表1.ksh='1001 '
[/Quote]

会产生迪卡尔
刚测试

1001 校1 100
1001 校1 90
1001 校1 90
1001 校2 100
1001 校2 90
1001 校2 90
:(
yzf86211861 2012-05-17
  • 打赏
  • 举报
回复

select a.ksh, a.xm, b.xx, c.jh from table1 a
inner join table2 b on a.ksh=b.ksh
inner join table3 c on b.xx=c.xx
licai1210 2012-05-17
  • 打赏
  • 举报
回复
select 表1.ksh,表1.xm,表2.xx,表3.jh from 表1,表2,表3 wher 表1.ksh==表2.ksh and 表2.xx=表3.xx and 表1.ksh='1001 '
bdmh 2012-05-17
  • 打赏
  • 举报
回复
大概如下
select * from table1 inner join (select * from table2 inner join table3 on table3.xxx=table2.xxx) as A on table1.xxx = A.xxx
山之魂2 2012-05-17
  • 打赏
  • 举报
回复
怎么会产生笛卡尔集,楼主肯定是没写 and 表2.xx=表3.xx 这个条件
lf_dream520 2012-05-17
  • 打赏
  • 举报
回复
这还不简单啊,
select a.ksh, a.xm, b.xx, c.jh from table1 a
inner join table2 b on a.ksh=b.ksh
inner join table3 c on b.xx=c.xx
WHERE a.ksh='1001'

xuefeng_zzg 2012-05-17
  • 打赏
  • 举报
回复
select 表1.ksh,表1.xm,表2.xx,表3.jh
from 表1,表2,表3
where 表1.ksh=表2.ksh and 表2.xx=表3.xx and 表1.xm='张三'

62,267

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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