【发布时间】:2018-07-20 15:08:36
【问题描述】:
Skills: user_skills:
+-------------------------+ +--------------------------------+
| UID | Skill | UID | user_id | skill_id
--------------------------- +---------------------------------
| 1 | C++ | 1 | 34 | 1
| 2 | C# | 2 | 34 | 2
| 3 | Python
我的预期输出是:
+----------------------------------+
| ID(Skill ID from Skills) | Skill
------------------------------------
| 3 | Python
我只想要用户 34 没有的技能。
当前获取用户所拥有的技能我正在使用:
SELECT ss. *
FROM skills AS s
LEFT JOIN user_skills AS us ON s.UID = us.skill_id
WHERE us.user_id = 34
但我似乎无法理解逻辑以得到相反的结果。因为当每个用户有多个技能时,这不起作用。
SELECT s. *
FROM skills AS s
LEFT JOIN user_skills AS us ON s.UID != us.skill_id
WHERE us.user_id = 34
【问题讨论】:
标签: mysql sql select join left-join