4
的情況是相當簡單:我有內容表A的含量和標籤表B:MySQL的:從表A中選擇,如果ID表B中匹配2(或任意N)行
Table A:
+----+-------+-...
| id | title | ...
+----+-------+-...
Table B:
+------+-----+
| id_A | tag |
+------+-----+
我要選擇一箇中的所有內容行,有標籤「富」:
SELECT A.* FROM A, B WHERE A.id = B.id_A AND B.tag = 'foo'
到目前爲止,這是簡單的。
我的問題是:如何選擇內容的行,有兩個標籤「富」 和標籤「吧」?特別是,我怎樣才能選擇具有n
標籤'foo','bar',...的行任意n > 1
?
解決方法是加入B n
次,但感覺不好,我認爲它並不是真正的高性能。
因爲我使用MySQL,PHP和PDO與預處理語句,如果有一個解決方案沒有必要的字符串連接(如'加入n
次'解決方案)在PHP部分,這將是我的最愛。
+1:但是,不知道爲什麼你們避免了在ID上加入? – VoodooChild 2011-01-19 13:06:17