Если затем присоединиться к другому присоединиться - PullRequest
8 голосов
/ 31 марта 2012

Я пытаюсь выяснить запрос, который объединяет несколько таблиц (около 8).В какой-то момент мне нужно объединить одну из двух таблиц.Итак, давайте назовем результат до этой точки A. Теперь я хочу присоединиться к B или C. Когда я использую B, я получаю меньший результат, или нет результата.Если нет результата после объединения, мне нужно вместо этого присоединиться к C.

Подводя итог, пересечение (A, C) дает больший результат, и я хочу присоединиться к C только если пересечение (A, B)пусто.

Как можно было бы сказать это в mysql?

1 Ответ

13 голосов
/ 31 марта 2012

Присоединиться только в том случае, если первичный ключ первого соединения имеет значение null:

SELECT *
FROM A
LEFT JOIN B ON A.id = B.id
LEFT JOIN C ON B.id IS NULL AND A.id = C.id
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...