Mysql 如何获取具有两个值的用户id
例如,我有两个表技能表和用户表 我需要从表用户中提取同时拥有Mysql 如何获取具有两个值的用户id,mysql,Mysql,例如,我有两个表技能表和用户表 我需要从表用户中提取同时拥有技能\u id1041和47的唯一用户id 如何在内部联接where作业\u id=39时提取 技能表 --------------------------------------- | id | job_id | skill_id | profile --------------------------------------- | 1 | 39 | 1041 | intermediate --------------
技能\u id
1041和47的唯一用户id
如何在内部联接where作业\u id=39
时提取
技能表
---------------------------------------
| id | job_id | skill_id | profile
---------------------------------------
| 1 | 39 | 1041 | intermediate
---------------------------------------
| 2 | 39 | 47 | intermediate
---------------------------------------
用户表
---------------------------------------
| id | user_id | skill_id | profile
---------------------------------------
| 1 | 212 | 1041 | intermediate
---------------------------------------
| 2 | 212 | 1218 | intermediate
---------------------------------------
| 3 | 213 | 1041 | intermediate
---------------------------------------
| 4 | 213 | 47 | intermediate
---------------------------------------
您可以在join中使用技能表两次
select s1.user_id
from skill s1
inner join skill s2 on s1.user_id = s2.user_id
and s1.skill_id =1014
and s2.skill_id = 47
您可以在join中使用技能表两次
select s1.user_id
from skill s1
inner join skill s2 on s1.user_id = s2.user_id
and s1.skill_id =1014
and s2.skill_id = 47
你可以在下面试试-
select user_id,count(skill_id) from user_table
where skill_id in (1041,47)
group by user_id
having count(skill_id)=2
你可以在下面试试-
select user_id,count(skill_id) from user_table
where skill_id in (1041,47)
group by user_id
having count(skill_id)=2
使用
和
和将不起作用,并且在没有行时将给出空结果。很简单:)我想这就是从user
中选择*skill\u id=1041和skill\u id=47。这是一个映射表,我需要得到一个用户,这个用户既有使用的技能,又有使用的技能,如果没有行,则会给出空结果。很简单:)我想这就是从user
中选择*skill\u id=1041和skill\u id=47。这是一个映射表,我需要得到一个既有可能重复的技能,也不会单独在用户表中工作的用户希望这就是你的意思从jh_job_user_skill
中选择*,其中skill_id=1041,skill_id=47,甚至不会单独在用户表中工作希望这是你的意思从jh_job_user_skill
其中skill_id=1041和skill_id=47