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字段中的結果爲空,仍然會顯示全部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條目像我想要的。
有誰知道我可以如何實現這個查詢?
神奇 - 它就像一個魅力! 我太親近了..我用WHERE而不是AND。我從來沒有見過與LEFT和OUTER之前的連接。有趣的是,如果我從查詢中刪除OUTER,看起來我會得到相同的結果。 非常感謝你..讓我回到生意! – Samuurai 2009-12-09 14:39:28