2014-03-31 48 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