[英]How do I pull two rows from a MySQL table that have one field value in common and the other field different?
[英]How do I pull all rows from a table with one unique field and specific values for another field?
这是我想要实现的目标:
我有一个名为“ users_skills”的表。 该表由两个字段“ user_id”和“ skill_id”组成。 我想从表中拉出所有显示用户具有特定技能的行。
例如,我要从“ users_skills”中提取具有Skill_id 110、120和130的所有用户。如果“ users_skills”中的用户没有全部3个,则我不希望他们出现在结果中。
我尝试了一个简单的AND(例如users_skills.skill_id = 110 AND users_skills.skill_id = 120 AND users_skills.skill_id = 130),但是没有用。
我将如何完成? 谢谢!
尝试使用自联接:
SELECT us1.* FROM users_skills us1
JOIN users_skills us2 ON us1.user_id = us2.user_id
JOIN users_skills us3 ON us1.user_id = us3.user_id
WHERE us1.skill_id = 110 AND us2.skill_id = 120 AND us3.skill_id = 130
我假设您实际上是想要来自表users
和skills
的数据,在这种情况下,您可以使用
SELECT users.*, skills.* FROM users
JOIN users_skills us1 ON users.id = user_id
JOIN users_skills us2 ON users.id = us2.user_id
JOIN users_skills us3 ON users.id = us3.user_id
JOIN skills ON skills.id = us1.skill_id OR skills.id = us2.skill_id OR skills.id = us3.skill_id
WHERE us1.skill_id = 110 AND us2.skill_id = 120 AND us3.skill_id = 130
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.