2014-09-18 95 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' 
相关问题