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