2014-09-18 93 views
0

如何使用SQL獲取此問題的答案?使用其他表中的數據從表中獲取答案

守門人的名字是誰,在鼠標的大門?

(表是不是最好的格式,但是想象一下,他們有3列,並與行「ID ......」爲標題)

整個「把關人」表

ID gatekeeper gate  
1 TE   4  
2 ER   1  
3 PU   2  
4 WD   3  
5 TR   5 

整個 「門」 表

ID animal gate  
1 cat  3  
2 dog  1  
3 mouse 2 

是不是這樣?

SELECT gatekeeper 
FROM gatekeeper 
WHERE gate = (SELECT gate from gates where animal = mouse); 

回答

3
SELECT gatekeeper.gatekeeper 
FROM gatekeeper 
JOIN gates on gates.gate = gatekeeper.gate AND gates.animal = 'mouse' 
+0

謝謝你的回答。 – user3702392 2014-09-18 16:52:35

+0

我只是想補充一個問題。 將如何更改代碼,如果有另一個表: 國家動物 美國貓 英國狗 小鼠 而問題是: 什麼是看門人(S)的名字,誰是位於美國? (這可能沒有意義,但我的觀點是 - 如何編寫代碼,如果需要連接來自三個表的數據) – user3702392 2014-09-18 16:56:16

+1

@ user3702392:只需將表加入不同的列即可。但也許你應該嘗試閱讀一些教程,如[w3schools.com]上的SQL-Tutorial(http://www.w3schools.com/sql/) – waka 2014-09-18 17:01:34

1

你如何定義 '容易'?最簡單的方法應該是你最舒服的方式。但是,子查詢可能會減慢查詢的性能。最好使用連接,如下所示:

SELECT gk.gatekeeper 
FROM gatekeeper AS gk 
    JOIN gate AS g on g.gate = gk.gate 
WHERE g.animal = 'mouse' 
相關問題