2012-02-26 2 views
1

질문이 있습니다 ... 도시 이름이 들어있는 테이블이 있다고 가정합니다. 이 같은 존은 현재 위치 로스 앤젤레스이며 그의 고향 마드리드하는 사용자입니다"선택"딜레마

uid username locationid hometownid 
1 John  1   2 

있는 :

id name 
1 Los Angeles 
2 Madrid 

그리고 사용자를위한 테이블이 있습니다. 어쨌든 사용자의 현재 위치 이름과 현지 이름 을 한 행에 검색 할 수 있습니까? SELECT 쿼리가 있습니까? 불가능할 경우 데이터베이스 구조를 변경하기위한 제안이 있습니까?

답변

4

예, 매우 간단합니다. 사용자 테이블의 각 관련 필드에 JOIN을 추가하기 만하면됩니다.

SELECT u.username, c1.name AS location, c2.name AS hometown 
FROM users AS u 
LEFT JOIN cites AS c1 ON u.locationid = c1.id 
LEFT JOIN cites AS c2 ON u.hometownid = c2.id 
WHERE u.id = 1 LIMIT 1;