MySQL запрос для поиска людей с конкретными навыками

0

Я неопытный с SQL... Я пытаюсь выяснить, как искать мою базу данных для персонала с определенными навыками.

Я хочу создать таблицу, содержащую два столбца: имя и мастерство (ов)

В настоящий момент этот запрос выполняется следующим образом:

SELECT  * 
FROM    User_Skills LEFT JOIN 
        skills ON User_Skills.Skill_id = Skills.id 
WHERE   Skill_id = 5 OR Skill_id = 7 // 5 & 7 are variables.

Это приводит к следующим результатам:

User_id     Skill_id    id   name
1000           5       5    Designer
1000           7       7    Data Analysis
1001           7       7    Data Analysis
1001           5       5    Designer

Вопрос в том, правильно ли я это делаю? Я ищу конкретные навыки. Как только я нахожу навыки, должен ли я использовать User_id для выполнения второго запроса? Я не знаю, нужно ли мне дважды возвращать имя, как если бы я присоединился к таблице Users к вышеуказанному запросу. Или я должен ПРИСОЕДИНИТЬСЯ к таблице User, а затем отбирать данные, которые мне не нужны программно.

Теги:
join

1 ответ

2
Лучший ответ

Я бы посоветовал вам взглянуть на Group_Concat

GROUP_CONCAT полезно расширение GROUP BY.

  • 0
    Это действительно круто! Я никогда не использовал функции GROUP в SQL! Будучи очень новым с базами данных, мне интересно, если бы вы могли указать мне правильное направление. Я не знаю, как ДУМАТЬ о том, как добиться желаемых результатов. Скажем, если я хочу вернуть всех пользователей с идентификатором навыка 10 и идентификатором навыка 12. Когда я выполняю запрос с использованием WHERE SKill_id = 10 И Skill_id = 12, результаты не отображаются. Если я сделаю Skill_id = 10 ИЛИ Skill_id = 12, это не даст мне желаемых результатов, потому что мне нужны пользователи, имеющие ОБА навыки, а не один или другой. Вот результаты, которые я хотел бы: Пользователь Skill_id Фред 10,11

Ещё вопросы

Сообщество Overcoder
Наверх
Меню