選擇行我有一個像下面3個表:MySQL的:從連接表,其中「中」和「不是」標準用於
表媒體:
+------------------------+
| media_id | media_name |
+------------------------+
| 1 | item1 |
| 2 | item2 |
| 3 | item3 |
+------------------------+
加入表mediatag:
+--------------------+
| media_id | tag_id |
+--------------------+
| 1 | 1 |
| 1 | 2 |
| 2 | 1 |
| 3 | 1 |
| 3 | 3 |
+--------------------+
表標籤:
+--------------------+
| tag_id | tag_name |
+--------------------+
| 1 | blue |
| 2 | red |
| 3 | white |
| 4 | green |
+--------------------+
我希望檢索具有「藍色」和「白色」標籤但沒有帶「紅色」標籤的媒體的所有媒體。
所以在我的例子,其結果必然是:ITEM2,項目3
我嘗試這個查詢,但顯然會顯示物品1:
SELECT m.media_id, media_name FROM media AS m
INNER JOIN mediatag AS mag ON m.media_id = mag.media_id
WHERE tag_id = '1' OR tag_id = '3' AND tag_id !='2';
如何做到這一點?
具有條件
確定嗎? 它似乎只檢索** item3 **,因爲item2不匹配'white'標籤。 – mytom
這不是你想要的嗎?它應該工作 –
@juergend我認爲他們想要藍色或白色標籤沒有紅色。看起來像你可以改變這樣的演示查詢 - http://rextester.com/NRGGU92783 – ollie