Я путаюсь с самым сложным SQL-запросом, который я когда-либо делал, что, вероятно, чрезвычайно просто для большинства из вас (:
У меня есть три таблицы: Пользователь, Навыки и Навыки пользователя. Поля которых должны быть достаточно понятны.
Я хочу выбирать людей, у которых есть одно или несколько умений, соответствующих моим критериям.
Я могу выбрать пользователя с навыком, который мне нужен, но я не уверен в синтаксисе запроса нескольких навыков.
Я бы хотел использовать только один запрос, поэтому я пытаюсь использовать GROUP_CONCAT
Вот мой SQL:
SELECT User_id, first_name, last_name, county, GROUP_CONCAT(CAST(Skill_id AS CHAR))
FROM User LEFT JOIN User_Skills ON User.id = User_Skills.User_id
LEFT JOIN Skills ON User_Skills.Skill_id = Skills.id GROUP BY User_id
User_id first_name last_name county GROUP_CONCAT(CAST(Skill_id AS CHAR))
1000 Joe Blow West Yorkshire 8,6,1,9,7,3,5,10
1001 Fred Bloggs COUNTY1 5,8,2,7,9
1003 asdf asdf1 Some County 10,8,2
Как ограничить поиск только людьми с навыком 5 И 9?