2014-09-18 7 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

+0

방금 ​​추가 질문을 하나 추가하고 싶습니다. 다른 테이블이 있다면 어떻게 코드 변경은 다음과 같습니다 국가 동물 미국 고양이 UK 개 마우스를 는 그리고 질문은 다음과 같습니다 미국에 위치하는 게이트 키퍼 (들)의 이름이 무엇입니까? (아마도 실제로는 이해가되지 않지만 요점은 - 코드를 작성하는 방법, 세 테이블의 데이터를 연결해야하는 경우) – user3702392

+1

@ user3702392 : 다른 열의 테이블에 가입하기 만하면됩니다. 하지만 [w3schools.com] (http://www.w3schools.com/sql/)의 SQL-Tutorial과 같은 자습서를 읽으십시오. – waka

1

는 어떻게 '쉽게'정의는 무엇입니까? 가장 쉬운 방법은 가장 편한 방법입니다. 그러나, subselect는 실제로 u 리 성능을 @ 려질 수 있습니다. 다음과 같이 조인을 사용하는 것이 더 좋습니다.

SELECT gk.gatekeeper 
FROM gatekeeper AS gk 
    JOIN gate AS g on g.gate = gk.gate 
WHERE g.animal = 'mouse' 
관련 문제