У меня есть главная таблица, из которой я выбираю, и таблица с подэлементами, из которых я выбираю в соединении. Пример:
person skill person_to_skill
id | name id | skill id | p_id | s_id
------------ ------------ ----------------
1 | jim 1 | sewing 1 | 1 | 2
2 | peter 2 | cooking 2 | 2 | 1
3 | susan 3 | singing 3 | 2 | 3
4 | kevin 4 | 3 | 1
5 | 3 | 2
6 | 4 | 3
Итак, теперь мы видим, что у сима есть только один навык, у Питера - два, и так далее.
Теперь, если я выберу из лица, скилла koin, а затем присоединюсь к person_to_skill, но я хочу только двух человек. Как мне удается это сделать без группировки и, следовательно, не получить все навыки?
Коротко: я хочу выбрать двух человек из "человека" со всеми их навыками.
Я пытался просто использовать LIMIT , но это ограничивает строки результатов, а не людей.
Если я использую GROUP BY , я получаю только один навык на человека.
Возможно ли это без подвыбора?
Есть идеи у кого-нибудь?
Мой подход, измененный для работы с примером, выглядит следующим образом:
SELECT p.id,p.name,s.skill
FROM person AS p
LEFT JOIN person_to_skill psk ON (psk.p_id = p.id)
LEFT JOIN skill s ON (s.id = psk.s_id)
ORDER BY p.name
LIMIT 0,2