我真的不知道如何从数据透视表中检索特定行。
这是我的数据透视表:
+----+-------------+--------+
| 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子句的等价物。
希望有人帮忙。 感谢名单
答案 0 :(得分:1)
试试这个:
SELECT peticion_id
FROM tbl
WHERE tag_id in (21,28,15)
GROUP BY peticion_id
HAVING count(*) = 3