@Nerd0_0
Программист Java, C#, совсем джун C++, линуксоид

Как сформировать запрос mysql для сбора данных из 3х таблиц?

Имеется три таблицы:
Person(PersonID, Name),
Skill(SkillID, Name),
Questionary(PersonID, SkillID, Level)
Требуется получить ответ вида:
Person1 Skill1 level1
Person1 Skill1 none
и так далее. То есть, для каждого Person нужно получить Skill, даже если соответствующей записи нет в Questionary

Пока получается получить такое для конкретного Person:
select Person.PersonID, Skill.SkillID from Person inner join Questionary on Person.PersonID=Questionary.PersonID and Person.PersonID=4 right join Skill on Questionary.PersonID=Person.PersonID and Questionary.SkillID=Skill.SkillID;
+----------+---------+
| PersonID | SkillID |
+----------+---------+
| 4 | 17 |
| 4 | 18 |
| NULL | 19 |
| NULL | 20 |
| NULL | 21 |
+----------+---------+
  • Вопрос задан
  • 44 просмотра
Пригласить эксперта
Ответы на вопрос 1
irishmann
@irishmann
Научись пользоваться дебаггером
SELECT
    p.`Name` as `PersonName`,
    s.`Name` as `SkillName`,
    q.`Level` as `QuestionaryLevel`
FROM
    `Questionary` q
    LEFT JOIN `Person` p ON p.`PersonID` = q.`PersonID`
    LEFT JOIN `Skill` s ON s.`SkillID` = q.`SkillID`
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы