php - 选择值存在的位置

标签 php sql mysql database select

首先是一个数据库示例:

id, product_id, cat, name, value
--------------------------------
1,1,Algemeen,Processor,2 Ghz
2,1,Algemeen,Geheugen,4 GB

3,2,Algemeen,Processor,3 Ghz
4,2,Algemeen,Geheugen,4 GB

5,3,Beeldscherm,Inch,22"
6,3,Beeldscherm,Kleur,Zwart
7,3,Algemeen,Geheugen,3 GB
8,3,Algemeen,Processor,3 Ghz

我想通过一个查询来选择以下 id:1,2,3,4,7,8

因为这些产品的猫 = algemeen 和名称 = 处理器。 ID 5,6 仅在产品 3 中出现。

因此,必须选择所有产品 (product_id) 都存在的条目(目录和名称)。

数据库包含 80.000 个条目,其中包含许多不同的猫、名称和值。

这是可能的一个查询还是需要一些 php?我该怎么做呢?

我为糟糕的英语道歉。

最佳答案

我想您的意思是,显示所有 product_id 中存在 (cat, name) 组合的所有记录,对吧?

select t.id, t.product_id, t.cat, t.name, t.value
from (
  select cat, name
  from tbl
  group by cat, name
  having count(product_id) = count(distinct product_id)
) p
join tbl t on t.cat = p.cat and t.name = p.name

关于php - 选择值存在的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5040158/

相关文章:

php - 根据单选按钮值从数据库检索数据

php - MySQL - 简化教师/学生订阅者的复杂查询

sql - -bash : imp: command not found oracle

php - Laravel 变形关系

mysql - 为没有在 SQL Server 中指定默认值的非列生成默认值的脚本

php - 自定义表单,计算答案然后更新 mysql DB

php - 处理 PHP 多维数组以将键指定为值数组的父级

php - 使用 PHP 和 MySQL 用预定义值更新行记录

php - 每天统计/计算 mysql 结果

mysql - 存储json,双引号转义问题