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