select 在数据透视表中有多行 table
select with a multiple row in pivot table
我真的不知道如何从数据透视表中检索特定行 table。
这是我的支点 table:
+----+-------------+--------+
| 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.
我不知道如何制定查询,也许我正在寻找相当于 for(where in) 的 AND 子句。
希望有人帮忙。
谢谢
试试这个:
SELECT peticion_id
FROM tbl
WHERE tag_id in (21,28,15)
GROUP BY peticion_id
HAVING count(*) = 3
我真的不知道如何从数据透视表中检索特定行 table。
这是我的支点 table:
+----+-------------+--------+
| 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.
我不知道如何制定查询,也许我正在寻找相当于 for(where in) 的 AND 子句。
希望有人帮忙。 谢谢
试试这个:
SELECT peticion_id
FROM tbl
WHERE tag_id in (21,28,15)
GROUP BY peticion_id
HAVING count(*) = 3