You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PrestaShop 1.7中NOT IN查询问题:仅筛选单一客户组客户

PrestaShop 1.7 筛选仅归属客户组2的SQL问题解决

你的SQL语句问题在于:它只是过滤掉了id_group为34、932的记录,但一个客户如果同时属于组2和其他组(比如34),他在ps_customer_group表中会有多条记录(一条对应组2,一条对应组34)。你的语句会把该客户对应组2的那条记录查出来,所以结果里依然包含这些同时归属多组的客户。

正确的SQL写法有两种:

方法1:分组聚合验证

通过分组统计每个客户的所属组数量,确保仅存在组2:

SELECT id_customer
FROM ps_customer_group
GROUP BY id_customer
HAVING COUNT(DISTINCT id_group) = 1 AND MAX(id_group) = 2;
  • GROUP BY id_customer 将同一个客户的所有组记录聚合到一起
  • HAVING 条件确保该客户只有1个唯一组,且这个组是2

方法2:子查询排除多组客户

先筛选出属于组2的客户,再排除那些同时属于34/932组的客户:

SELECT id_customer
FROM ps_customer_group
WHERE id_group = 2
AND id_customer NOT IN (
    SELECT id_customer
    FROM ps_customer_group
    WHERE id_group IN (34, 932)
);
  • 内层子查询找出所有归属34或932组的客户ID
  • 外层查询筛选出归属组2且不在子查询结果里的客户,也就是仅属于组2的客户

内容的提问来源于stack exchange,提问作者Pars3r0

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 00:04:56