mysql查询的问题

帖子列表 发布于 2014/04/23 15:05
阅读 241
收藏 0

有一个表 school 一个表schoolHistory

school 

ID RegionID Area AreaID 

1  222        Sh   123

2  333        Bj    345

schoolHistory

ID AreaID 

1 345

我想要的结果是: 

ID RegionID Area AreaID 

2  333        Bj    345

即根据school表的AreaID查,所有AreaID,只要schoolHistory表里也有这个值,就要,比如 schoolHistory里没有AreaID = 123的值,就不要。 怎么写sql? 为什么我inner join了还是会查出123的值?


加载中
0
震秦
震秦

select a.ID, a.RegionID, a.Area, a.AreaID Form school a, schoolHistory b where a.ID = b.ID



帖子列表
帖子列表
不好意思你貌似理解错了 ,这两张表的ID不是一回事
0
保密保密
保密保密

select * from school inner join schoolhistory on school.AreaID=schoolhistory.AreaID 

没有查到123 就查到345啊

0
hylent
hylent

select * from school where AreaID in (select AreaID from schoolHistory)

 

0
realanan
realanan

select * from school where exists (select areaid from schoolhistory where school.areaid = schoolhistory.areaid)

优雅先生
优雅先生
关联子查询,不太好吧
0
Forsend
Forsend

select * from school where AreaID in (select AreaID from schoolhistory)



0
首席安全砖家
首席安全砖家

select  school.* from  school where school. AreaID in(select AreaID from schoolHistory  ) ;

0
魔力猫
魔力猫

我建议你与其想SQL怎么写,不如先想想表设计怎么搞成这个样子。重新设计一下表的结构,应该会好很多。

0
Rksi5
Rksi5

select a.* from school a  inner join schoolhistory b using (areaid);

0
hnynes
hnynes

引用来自“保密保密”的评论

select * from school inner join schoolhistory on school.AreaID=schoolhistory.AreaID 

没有查到123 就查到345啊

简单看了下,我觉得也应该是这个结果,而且理论上是不可能出现123的,楼主的脚本是啥样的??

0
绝对是路过

建议重新理解下sql,把你的sql贴出来

返回顶部
顶部