2014-03-31 103 views
1

我有四个表A,B,C和DMySQL的选择列,而其他两列是引用的表

Table A: value1, city 
Table B: value2, city 
Table C: value3, city 
Table D: value1, value2, value3 

,我需要选择值2相等(我猜从表d),其中值1和值3的表d同一行中,并都在其列于表A中的相同的“城市”和C.

所以,如果表A的行

13, Chicago 
14, Milwaukee 
15, St. Louis 

和表C有行

78, Chicago 
89, St. Paul 
94, St. Louis 

和表d具有行

13, One, 89 
13, Two, 78 
14, Three, 78 
15, Four, 94 

然后,我需要打印出来:

Two 
Four 
+0

你要找的是一个 “加入” 操作。 –

+0

[*小提琴演示*](http://sqlfiddle.com/#!2/6471d/2) –

+0

@M Khalid Junaid感谢让我进入该网站。在本学期剩下的时间里成为一个非常好的资源。你的回答也是绝对正确的。 – BWONG

回答

3
select 
    value2 
from 
    tablea a 
    inner join tablec c on a.value1= c.value1 
    inner join tableb b on c.value3= b.value3 
where 
    b.city = a.city 
+0

终于有足够的代表upvote you – BWONG

+0

@BWONG谢谢!我没有意识到这是问题所在,否则我会以你的方式投出更多选票。有几个让你继续前进。祝你好运! – paqogomez

+0

我今天还了!谢谢! – BWONG

1
SELECT TableD.value2 
FROM TableD 
JOIN TableC ON TableC.value3=TableD.value3 
JOIN TableA ON TableA.value1=TableD.value1 AND TableA.city = TableC.city 
+0

最后得到了足够的代表让你满意,先生。谢谢! – BWONG