假設有3個表:書籍,標籤和ASOCSQL聯接查詢每個匹配ASOC返回行
+----------+ +----------+ +----------+
|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')
我得到的不良結果是,每本書都被列出多次,每次標記ASOC條目一次。我只想要匹配的唯一書籍清單。我該怎麼做呢?
在此先感謝。
您可以添加DISTINCT子句。 –
MSDN [刪除具有不同重複行的文章](http://msdn.microsoft.com/zh-cn/library/ms187831%28v=sql.90%29.aspx)SQL代碼[http:// sqlfiddle.com/#!3/9a39a/1](http://sqlfiddle.com/#!3/9a39a/1) – deeg