2013-01-30 2 views
1

이 문제를 해결할 수 있도록 도와 주시겠습니까?MYSQL - 왼쪽 테이블에 전체 행이있는 2 개의 테이블을 결합하십시오.

나는 다음과 같이 두 테이블이 있습니다

 
| id | name   | 
|----+--------------| 
| 1 | first_name | 
| 2 | last_name | 
| 3 | email  | 

ATTRIBUTE_VALUES

 
| uid | attr_id | value  | 
|-------+-----------|-----------| 
| 1  | 1   | Hello  | 
| 1  | 2   | world  | 
|-------+-----------|-----------| 
| 2  | 1   | A   | 
| 2  | 2   | B   | 
| 2  | 3   | [email protected] | 

나는 사용자의 속성을 선택하도록 쿼리를 작성해야 속성을 경우에도 속성 테이블 attribute_values에 존재하지 않습니다. 그렇다면 null 값으로 결과를 얻고 싶습니다.

사용자 ID를 선택하기위한 예를 들면 1

 
| name   | value  | 
|---------------|-----------| 
| first_name | Hello  | 
| last_name  | world  | 
| email   | NULL  | 

사용자 ID 2

 
| name   | value  | 
|---------------|-----------| 
| first_name | A   | 
| last_name  | B   | 
| email   | [email protected] | 

사용자 ID 3 (ATTRIBUTE_VALUES 존재하지 않음)

 
| name   | value  | 
|---------------|-----------| 
| first_name | NULL  | 
| last_name  | NULL  | 
| email   | NULL  | 

최상의 방법이 위의 3 가지 결과를 얻는 하나의 쿼리가 있습니까?

감사합니다.

답변

2
SELECT a.*, b.value 
FROM attributes a 
     LEFT JOIN attribute_values b 
      ON a.ID = b.attr_id AND b.uid = 1 
확실
+1

하지 않음 '과는 무엇을 하는가'b.uid? - 편집 - 신경 끄시 고. – GolezTrol

+0

@GolezTrol 예, 오타입니다 –

+0

잘 작동합니다, 감사합니다 JW –

관련 문제