2012-05-05 2 views
-7
SELECT c1.address 
FROM users c1, users c2 
WHERE c1.address = c2.address 
AND c2.first_name = 'John' 

세 번째 행이 무엇을하는지 이해할 수 없습니다. 이 쿼리는 주소 1이 주소 2와 일치해야한다는 조건에서 두 개의 개별 주소를 반환하기 때문에 이해할 수 없습니까?튜플 변수 - 다음 SQL 문을 내게 설명 할 수 있습니까?

무엇이 누락 되었습니까?

편집 :

표는 사용자의 세 가지 기록을 가지고있다. 이러한 사용자의이 같은 이름 '존'

편집을 공유 또한

, 왜 우리가 대신 다음에,이 작업을 수행해야합니까?

SELECT address 
FROM users 
WHERE first_name = 'John' 
+0

내가 알 수있는 한, 두 개가 아니라 하나의 주소를 반환합니다. –

+1

우리에게 쿼리의 테이블 구조 + 출력을 보여줍니다. – gdoron

+3

몇 가지 기본적인 SQL 튜토리얼을 수행해야합니다. 여기에서 묻는 것보다 훨씬 많은 도움이 될 것입니다. – gdoron

답변

2

address 만 선택할 경우 이러한 선택 항목은 동일합니다. 두 개의 "Johns"이 있기 때문에 두 개의 주소를 반환합니다.

주소에 가입하면 , 그 외 사람은 (는) John과 함께 거주하는 사람을 파악할 수 있습니다. 예 :

SELECT c2.first_name 
FROM users c1, users c2 
WHERE c1.address = c2.address 
AND c1.first_name = 'John' 
AND c2.first_name != 'John' 

"존"으로 사는 모든 사람의 이름을 알려줍니다.

+0

"주소 만 선택"으로 무엇을 반대합니까? – code511788465541441

+0

@ user521180 : 이름과 같은 다른 필드를 지정합니다. –

+0

주소와 이름을 선택하더라도 여전히 동일한 것을 반환합니다. 그래서 c1.address와 같은 일을하는 것이 무엇입니까? – code511788465541441

관련 문제