Предположим, есть 3 таблицы: книги, TAGS и АСОКSQL присоединиться запрос возвращения строки для каждого соответствия АСОК
+----------+ +----------+ +----------+
|BOOKS | |TAGS | |ASOC |
+----------+ +----------+ +----------+
|book_id | |tag_id | |book_id |
|book_name | |tag | |tag_id |
|... | +----------+ +----------+
+----------+
Будем надеяться, что использование/намерения в этом примере очевидно ..
Я хочу запросить книги, которые соответствуют определенному набору тегов. Так что я пытаюсь что-то вроде:
SELECT B.book_name
FROM BOOKS B
, TAGS T
, ASOC A
WHERE B.book_id = A.book_id
AND T.tag_id = A.tag_id
AND (T.tag = 'Classic' OR T.tag = 'Fiction')
Нежелательный результат, который я получаю, что каждая книга в настоящее время в списке несколько раз, один раз для каждой записи тега АСОК. Мне просто нужен уникальный список книг, которые соответствуют. Как мне это сделать?
Заранее спасибо.
Вы можете добавить предложение DISTINCT. –
MSDN [статья об удалении повторяющихся строк с разным] (http://msdn.microsoft.com/en-us/library/ms187831%28v=sql.90%29.aspx) SQL-скрипт кода [http: // sqlfiddle.com/#!3/9a39a/1](http://sqlfiddle.com/#!3/9a39a/1) – deeg