Php MYSQL查询-基于同一表中另一列中的不同值返回一列中所有值的简单方法?
我对这个有点挠头,我相信这是很基本的,但有点 如果我有一个两列的表,它的结构基本上如下: 表:每家门店的客户数量 其中,pid是唯一的键,存储id可以有多个重复值: 例如 对于将所有PID捕获到一个不同的store_id但忽略值为0的store_id的结果,正确的查询是什么 这容易做到吗?我觉得这太容易了 我想我可以在两个语句中完成这项工作,首先获取所有不同的store_id,将结果保存到一个数组中,然后循环通过该数组对每个store_id执行查询并保存结果 但是,在一个mysql查询中有没有更简单的方法来完成这项工作 理想情况下,在单个查询中,我可以得到如下结果:Php MYSQL查询-基于同一表中另一列中的不同值返回一列中所有值的简单方法?,php,mysql,sql,database,pdo,Php,Mysql,Sql,Database,Pdo,我对这个有点挠头,我相信这是很基本的,但有点 如果我有一个两列的表,它的结构基本上如下: 表:每家门店的客户数量 其中,pid是唯一的键,存储id可以有多个重复值: 例如 对于将所有PID捕获到一个不同的store_id但忽略值为0的store_id的结果,正确的查询是什么 这容易做到吗?我觉得这太容易了 我想我可以在两个语句中完成这项工作,首先获取所有不同的store_id,将结果保存到一个数组中,然后循环通过该数组对每个store_id执行查询并保存结果 但是,在一个mysql查询中有没有更
[500] => Array(
[0] => 1,
[1] => 2,
[2] => 3
...
),
[505] => Array(
[0] => 4,
[1] => 5
)
等等?我想你只是想要一个团体:
我想你只是想要一个团体:
您不想要这样的东西吗:选择pid,store\u id从其中store\u id>0按store\u id分组 这将对在该存储id下具有不同存储id的所有PID进行分组
这可能不是您想要的确切查询,但我肯定认为您可以通过GROUP BY来实现这一点。您不想要这样的内容:选择pid,store\u id FROM WHERE store\u id>0 GROUP BY store\u id 这将对在该存储id下具有不同存储id的所有PID进行分组
这可能不是您想要的确切查询,但我肯定认为您可以通过GROUP BY实现这一点。我假设您使用php是因为调试输出 我认为您只需要将结果堆叠在一个关联数组中,其中键是store_id。此示例使用mysqli_查询,但您可以将其调整为pdo
$results_by_store_id = array();
$rs = mysqli_query("select * from customer_per_store where store_id <> 0");
while($r = mysqli_fetch_assoc($rs)) {
$results_by_store_id[$r['store_id']][] = $r['pid'];
}
print_r($results_by_store_id);
我假设您使用php是因为调试输出 我认为您只需要将结果堆叠在一个关联数组中,其中键是store_id。此示例使用mysqli_查询,但您可以将其调整为pdo
$results_by_store_id = array();
$rs = mysqli_query("select * from customer_per_store where store_id <> 0");
while($r = mysqli_fetch_assoc($rs)) {
$results_by_store_id[$r['store_id']][] = $r['pid'];
}
print_r($results_by_store_id);
听起来您试图使用错误的工具来完成此工作,如果您使用的是GROUP BY variant,您仍然需要将数据后置处理到数组中 您想要的查询非常简单:
SELECT store_id, pid
FROM table t
WHERE store_id != 0
然后使用您选择的语言运行生成的assoc数组,并从中构建所需的数组。。下面是一些php代码:
$processed = [];
foreach($fetched as $row){
$processed[$row['store_id']][] = $row['pid']
}
听起来您试图使用错误的工具来完成此工作,如果您使用的是GROUP BY variant,您仍然需要将数据后置处理到数组中 您想要的查询非常简单:
SELECT store_id, pid
FROM table t
WHERE store_id != 0
然后使用您选择的语言运行生成的assoc数组,并从中构建所需的数组。。下面是一些php代码:
$processed = [];
foreach($fetched as $row){
$processed[$row['store_id']][] = $row['pid']
}