Сложный запрос, много объединений - PullRequest
1 голос
/ 11 мая 2011

Я боролся с этим в течение нескольких часов, и я надеюсь, что вы можете дать мне немного свежего понимания.У меня есть 6 таблиц следующим образом:

  • Таблица A
  • Таблица B, которая является дочерней для A (один ко многим)
  • Таблица C, котораяявляется потомком B (один ко многим)
  • Таблица D, который является другим потомком A (один ко многим)

  • Таблица E является другим родителем D, в отношении «один к [нулю или одному»]

  • Таблица F, которая является другим потомком E (один ко многим)

В основном мне нужно выбрать поле из B, где C = F.

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

1 Ответ

3 голосов
/ 11 мая 2011

С информацией, которую вы представили, как насчет

SELECT  *
FROM    A
        INNER JOIN B ON B.AID = A.AID
        INNER JOIN C ON C.BID = B.BID
        INNER JOIN D ON D.AID = A.AID
        INNER JOIN E ON E.DID = D.DID
        INNER JOIN F ON F.EID = E.EID
WHERE   C.Field = F.Field

Если это не то, что вам нужно, вы можете разместить небольшое подмножество данных с необходимыми результатами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...