1
14 개의 레코드가있는 스킬 테이블이 있습니다. 다음과 같이 구성되어 있습니다. | id | name |
MySQL 가입에 대한 도움말
다음으로 기술 테이블에 가입하려는 User_Skills 테이블이 있습니다. | User_id | Skill_id |
는 기본적으로 나는 항상 (14 개) 기록 결과 사용자가과 관련되지 않은 분야에서 NULL 보여주는 가입 할 수 있도록하려면 : 여기가 구조입니다.
SELECT * FROM Skills LEFT JOIN User_Skills ON Skills.id = User_Skills.Skill_id
편집 : -는이 쿼리 결과의 집합입니다 그것을 명확하게하기 위해
은 거의 내가이 쿼리 코드로 원하는 결과를 얻었다. User_id에 의해 스킬을 선택해야하지만 결과가 User_id 필드에 Null 인 경우에도 14 가지 스킬 모두를 표시해야합니다.id name User_id Skill_id
1 HGV1 1000 1
1 HGV1 1001 1
2 HGV2 1001 2
3 No.1 Mechanic 1000 3
3 No.1 Mechanic 1001 3
4 No.2 Mechanic 1001 4
5 Designer 1001 5
5 Designer 1000 5
6 Engineer 1000 6
7 Data Analysis 1001 7
7 Data Analysis 1000 7
8 Coaching/Inst. 1001 8
8 Coaching/Inst. 1000 8
9 Hospitality 1000 9
10 Promo Girl 1000 10
11 Public Relations NULL NULL
12 Photographer NULL NULL
13 Film Crew 1001 13
14 Physiotherapist NULL NULL
만 명 이상의 사용자가 기술로 연결되어 있기 때문에 기술 이름을 중복, 즉 내가 user_skills 테이블에있는 기록 ...의 양을 표시합니다. 코드 :
이도 거의를 가져
SELECT * FROM Skills LEFT JOIN User_Skills ON Skills.id = User_Skills.Skill_id WHERE User_id = 1001
그러나 이것은 단지 사용자와 관련된 기술을 보여주고 내가 원하는 원하는 NULL 항목이 표시되지 않습니다.
누구든지이 쿼리를 어떻게 달성 할 수 있는지 알고 있습니까?
환상적입니다 - 매력처럼 작동합니다! 나는 너무 가깝다. 나는 AND 대신에 어디를 사용했다. 나는 LEFT와 OUTER와 조인을 보지 못했습니다. 질의에서 OUTER을 제거하면 같은 결과가 나타납니다. 대단히 고마워 .. 다시 사업에 빠지게! – Samuurai