我試圖敲掉我的SQL技能的鏽跡,並需要一些幫助以下查詢。我目前使用的數據庫是mysql。幫助查詢關係表
我想要檢索所有分配了'tag2'和'tag4'的FlashCards。根據現有表格的內容(如以下摘錄所示),查詢應返回兩行:FlashCard_ID 1和2.
我將如何制定此查詢?自從我必須做這樣的事情以來,這已經有一段時間了。
mysql> select * from flashcard;
+--------------+------------+----------+
| FLASHCARD_ID | QUESTION | ANSWER |
+--------------+------------+----------+
| 1 | Question 1 | Answer 1 |
| 2 | Question 2 | Answer 2 |
| 3 | Question 3 | Answer 3 |
+--------------+------------+----------+
3 rows in set (0.00 sec)
mysql> select * from tag;
+--------+------+
| TAG_ID | NAME |
+--------+------+
| 1 | tag1 |
| 2 | tag2 |
| 3 | tag3 |
| 4 | tag4 |
| 5 | tag5 |
+--------+------+
5 rows in set (0.00 sec)
mysql> select * from flashcard_tags;
+--------+--------------+
| TAG_ID | FLASHCARD_ID |
+--------+--------------+
| 2 | 1 |
| 3 | 1 |
| 4 | 1 |
| 2 | 2 |
| 4 | 2 |
| 5 | 2 |
+--------+--------------+
6 rows in set (0.00 sec)
謝謝。這工作。我想知道是否有可能沒有Having條款呢? – Justin 2011-05-11 02:34:07
我們可以使用下面的查詢嗎?如果我做錯了,請糾正我。 – Sandeep 2011-05-12 05:09:17
「SELECT flashId FROM flashcards_tags WHERE tag_id = 2 AND EXISTS(SELECT flashId FROM flashcards_tags WHERE tag_id = 4)」 – Sandeep 2011-05-12 05:16:34