У меня есть таблица, которая содержит некоторые денормализованные данные, например, следующие (подделка, чтобы упростить мой вопрос):
Книжный стол
ID, Title, Author-Name, Publisher-Name, Category
В другой таблице у меня есть что-то вроде следующего:
Таблица автора
ID, Author-Name, Address
Стол издателя
ID, Publisher-Name, Address
Предположим, что Publisher-Name
и Author-Name
всегда уникальны.
Требуемый набор результатов
Теперь все, что я хочу сделать, - это создать запрос, который создает набор результатов, который включает:
1. all columns from Book table
2. Author.ID
3. Publisher.ID
Окончательный набор результатов будет выглядеть примерно так:
Результирующие столбцы
ID, Title, Author-Name, Author.ID as [AuthorID], Publisher-Name, Publisher.ID as [PublisherID] Category
Допустим, в Таблице книг есть две строки, тогда результирующий набор будет иметь две строки, которые включают соответствующие значения для Author.ID и Publisher.ID, поскольку поиск был выполнен в запросе и возвращен в набор результатов.
То, что я пробовал: присоединиться
Я пытался использовать различные объединения, но всегда получаю more rows than just two rows
, потому что объединение, похоже, объединяет Publisher.ID
И Author.ID
и I get 1 row
для каждого из них, что в итоге дает мне 4
строки вместо 2
.
Пример данных
Книга
1, 'All The Time', 'Fred Smith', 'Big Pub Co.', 'non-fiction'
2, 'Biggest Title Ever', 'John Jones', 'Small Pub Co.', 'fiction'
Авторы
100, 'Fred Smith', 'Yukon, AK'
101, 'John Jones', 'Happy, VT'
Издатели
300, 'Big Pub Co', 'Angry, IL'
301, 'Small Pub Co', 'Someplace, IN'
Ожидаемый набор результатов
1, 'All The Time', 'Fred Smith', 100, 'Big Pub Co.', 300, 'non-fiction'
2, 'Biggest Title Ever', 'John Jones', 101, 'Small Pub Co.' 301, 'fiction'