我有幾個表返回單列,books, bookcategories, categories
連接表,其中> 1行中的子表
bookcategories
是連接表,讓許多人books
和categories
之間一對多的關係。
我希望能夠在書上運行類別搜索,以便即使書中有很多類別時,搜索也會返回每行一行。
書籍
ID | Title
1 | Once upon...
2 | How many...
3 | How much...
分類
ID | Category
1 | x
2 | y
3 | z
BookCategories
BookId | CategoryId
1 | 1
1 | 2
2 | 2
2 | 3
2 | 1
3 | 1
我以爲我可以逃脫這個:
SELECT b.Id,
b.Title,
FROM (books b
INNER JOIN bookcategories bc ON b.ID= bc.BookId
)
WHERE (bc.categoryId =1 AND bc.categoryId=2)
GROUP BY b.Id, b.Title
但是,只要我添加AND,查詢就不會返回任何行。但是,這是我需要申請的標準 - 我只想返回書籍行,其中書籍同時具有上述類別1和2(即,不是類別1或類別2)
不禁讓我以爲我失蹤一些基本的東西。誰能幫忙?
我需要改變表格的結構還是有辦法實現我所需要的。
永
我認爲你需要重新字你的問題。代碼示例之前的文本告訴與您的代碼示例之後的代碼稍有不同的故事(由兩個給出不同結果的答案所證明)。與其試圖用文字解釋這一點,你能告訴我們究竟應該從樣本數據中返回哪些行嗎? –