Если у меня есть три таблицы, например:
Родители
| id | title |
| --- | -------- |
| 1 | Parent 1 |
| 2 | Parent 2 |
Отношения
| parent_id | child_id |
| --------- | -------- |
| 1 | 1 |
Дети
| id | title |
| --- | ------- |
| 1 | Child 1 |
И я запускаю следующий запрос:
SELECT parents.title,
relationships.child_id
FROM parents
LEFT JOIN relationships
ON parents.id = relationships.parent_id
INNER JOIN children
ON relationships.child_id = children.id;
Почему он возвращает следующее?
| title | child_id |
| -------- | -------- |
| Parent 1 | 1 |
Я быожидайте, что он вернет всех родителей (поскольку у родителей LEFT JOIN
), и вернет отношения только в том случае, если ребенок существует (поскольку там INNER JOIN
).
Скрипка