我有2個表question
和tag
,問題表中有1行可能具有多於標籤的問題。如何在同一個表的多行中獲取匹配的WHERE子句?
表可能看起來像:
question
---------
id | subject
------------
1 | foo
tag
------------------------------
id | name | question_id
------------------------------
1 | bar | 1
2 | abc | 1
3 | bar | 2
*什麼我想要得到的是具有所有指定標籤的問題*所以我要查詢來獲取「foo」的上述情況。問題,當我通過酒吧和ABC作爲標籤。
的IN
條款顯然不會在這種情況下工作,因爲它會返回「foo」的問題,如果它有bar或ABC作爲標籤:
select q.* from question q
where q.id in (select t.question_id from tag t where t.name in ('bar', 'abc'));
有人可以幫我想出了正確的查詢?
雙引號用於分隔標識符,例如, 「question_id」。單引號用於字符串文字,例如'酒吧'。 – jarlh
對不起,這是我剛剛編寫的僞查詢。你對單引號是正確的,謝謝指出。我已經修復了在查詢中使用正確引號的問題 –