在数据透视表中选择多行

时间:2015-05-14 07:25:08

标签: mysql query-performance

我真的不知道如何从数据透视表中检索特定行。

这是我的数据透视表:

+----+-------------+--------+
| id | peticion_id | tag_id |
+----+-------------+--------+
|  1 |           3 |     15 |
|  2 |           3 |     21 |
|  3 |           3 |     28 |
|  4 |           8 |     21 |
|  5 |           8 |     28 |
|  6 |          44 |     21 |
|  7 |          44 |     28 |
+----+-------------+--------+

我想想也许我认为这是一个动态查询,例如,如果我这样做:

SELECT peticion_id where tag_id in (21,28,15);

结果是:

+-----+-------------+--------+
| id  | peticion_id | tag_id |
+-----+-------------+--------+
|   1 |           3 |     15 |
|   2 |           3 |     21 |
|   6 |          44 |     21 |
|   4 |           8 |     21 |
|   3 |           3 |     28 |
|   7 |          44 |     28 |
|   5 |           8 |     28 |
+-----+-------------+--------+

我需要的结果只是peticion_id = 3

我不知道如何制定查询,也许我正在寻找(在哪里)成为AND子句的等价物。

希望有人帮忙。 感谢名单

1 个答案:

答案 0 :(得分:1)

试试这个:

SELECT peticion_id
FROM tbl
WHERE tag_id in (21,28,15)
GROUP BY peticion_id
HAVING count(*) = 3