选择多个关系值

问题描述 投票:0回答:1

我一直在努力解决这个问题。

我有3个关系。

用户,知识,技能和专长。

我需要通过知道技能的ID查找用户。同时,我想使用多种技能。

我希望能够通过专门技能对它进行排序,这有可能吗? SQL是否复杂并不重要。我只想要1个命令。

用户关系:https://imgur.com/78Ify54

知识关系:https://imgur.com/bvZhxlN

技能关系:https://imgur.com/nXTA513

专长关系:https://imgur.com/q2lI7GQ

所以目标是

  • 能够通过多个技能ID查找用户
  • 能够按特定技能的专长对用户进行排序

非常感谢您的任何建议:)

mysql doctrine
1个回答
0
投票

通过多个技能ID查找用户

select u.*
from User u
inner join Knowledge k on k.user_id = u.id
inner join Skill s on k.skill_id = s.id
where s.id in (:ids)

按特定技能的专业知识对用户进行排序

select u.id, u.name, e.name
from User u
inner join Knowledge k on k.user_id = u.id
inner join Skill s on k.skill_id = s.id
inner join Expertise e k.expertise_id = e.id
where s.name = 'My Skill'
order by e.name
© www.soinside.com 2019 - 2024. All rights reserved.