Моя цель - написать запрос. У меня есть три таблицы, A, B и C. Таблицы написаны так, что A.bID = B.bID и B.cID = C.cID. Это в основном позволяет мне написать запрос, в котором я связываю запись от a до b и связываю запись b с записью из c. Пока все хорошо, простой запрос.
В чем моя проблема ... один из столбцов, включенных в запрос (назовем его C.col3), должен иметь уникальные значения; значения в этом столбце могут отображаться только один раз в результате запроса, но другие столбцы из других таблиц не имеют этого требования.
Кто-нибудь может мне помочь написать этот запрос?
Спасибо ...
Обновление 1:
Вот макет таблицы (извините, я должен использовать общие имена)
Таблица A
aID, bid, aCol1, aCol2, aCol3 ... aCol10
Таблица B
bid, cid, bCol1, bCol2, bCol3 ... bCol10
Таблица C
cID, cCol1, cCol2, col3 , cCol4 ... cCol10
Без ограничения уникального значения в col3 я написал бы запрос следующим образом:
SELECT
A.aID, A.bID, A.aCol1 ... A.aCol10,
B.bID, B.cID, B.bCol1 ... B.bCol10,
C.cID, C.cCol1, C.cCol2, C.col3 ... C.cCol10
FROM
A, B, C
WHERE
A.bID = B.bID AND B.cID = C.cID
... но, конечно, это не гарантирует, что значения в C.col3 уникальны.
Обновление 2:
Подробнее ...
Таблица A и Таблица B имеют отношение один ко многим; A - это «заголовок», B - «элемент».
Таблица B и таблица C имеют отношение один к одному.
Эти таблицы являются частью механизма кэширования, поэтому многие данные выглядят одинаково, но в некоторых столбцах они все же различаются.
Поскольку A является заголовком, большинство дублирующих значений будет найдено в A.
Сначала мне нужно упорядочить строки по A.aID, но затем мне нужно только вернуть первые строки, где значение C.col3 не появляется в предыдущей строке для этого столбца.
Это немного проясняет ситуацию, или я все еще не вижу смысла? :)
Окончательное обновление:
Я выбрал ответ Бартоша Климека, так как он был ближе всего к тому, что мне было нужно; Я просто должен был изменить вложенное предложение соединения в середине.
Спасибо всем за помощь!