我有一个包含三列的表格。第一个product_id链接到另一个表,第二个att_id链接到另一个表,最后一个val_id链接到不同的表。
有相同的行product_id和val_id组合att_id。每个product_id可以有不同数量的val_id (如下例所示)。表看起来像:
| 产品编号 | 属性ID | 有效的 |
|---|---|---|
| 77 | 1 | 7 |
| 78 | 1 | 10 |
| 78 | 1 | 2 |
| 79 | 3 | 2 |
| 79 | 2 | 1 |
| 79 | 2 | 1 |
| 80 | 3 | 2 |
| 80 | 2 | 1 |
| 80 | 1 | 1 |
| 81 | 2 | 2 |
| 81 | 1 | 1 |
| 81 | 2 | 1 |
| 82 | 2 | 1 |
| 82 | 2 | 1 |
| 83 | 2 | 1 |
| 84 | 3 | 2 |
| 85 | 3 | 2 |
| 85 | 2 | 2 |
| 85 | 2 | 1 |
我的目标是选择等于 的product_id地方。根据用户输入可以有更多的s。val_id(1 AND 2)val_id
因此,上面示例的预期结果应该是:
| 产品编号 |
|---|
| 79 |
| 80 |
| 81 |
| 85 |
我无法弄清楚product_id,因为每个val_id组合都位于不同的行中。
因此,任何帮助将不胜感激。
我认为您正在寻找类似的东西:
select product_id
from test_tbl
where val_id in (1,2)
group by product_id
having count(distinct val_id) = 2;
Run Code Online (Sandbox Code Playgroud)
结果:
| 产品编号 |
|---|
| 79 |
| 80 |
| 81 |
| 85 |
| 归档时间: |
|
| 查看次数: |
1398 次 |
| 最近记录: |