《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
最佳答案

这种直接用联表查询就可以了。

假设 users 表结构如下:

字段 类型 描述
id int 主键
user_id int 用户ID
user_name varchar 用户名

user_groups 表结构如下:

字段 类型 描述
id int 主键
user_id int 用户ID
group_id int 分组ID

查询不在分组表中的用户,转换成联表描述就是:在 users 表中但是不在 user_groups 表中的数据。如下图所示:

查询 SQL 如下:

SELECT
    t1.*
FROM
    users t1
    LEFT JOIN user_groups t2 ON t1.user_id = t2.user_id 
WHERE
    t2.id IS NULL
10个月前 评论
快乐的皮拉夫 (作者) 10个月前
annajax (楼主) 10个月前
讨论数量: 8

这种直接用联表查询就可以了。

假设 users 表结构如下:

字段 类型 描述
id int 主键
user_id int 用户ID
user_name varchar 用户名

user_groups 表结构如下:

字段 类型 描述
id int 主键
user_id int 用户ID
group_id int 分组ID

查询不在分组表中的用户,转换成联表描述就是:在 users 表中但是不在 user_groups 表中的数据。如下图所示:

查询 SQL 如下:

SELECT
    t1.*
FROM
    users t1
    LEFT JOIN user_groups t2 ON t1.user_id = t2.user_id 
WHERE
    t2.id IS NULL
10个月前 评论
快乐的皮拉夫 (作者) 10个月前
annajax (楼主) 10个月前

not exists=wherenothas where in() = wherehasnotin left join 判断字表等于null的

10个月前 评论
select * from user where not exists (select * from user_group where user_group.user_id = user.id)
  • 用户表ID字段自增 自带索引
  • 用户分组表(user_group) 给user_id单独加上索引
10个月前 评论

这种直接用联表查询就可以了。

假设 users 表结构如下:

字段 类型 描述
id int 主键
user_id int 用户ID
user_name varchar 用户名

user_groups 表结构如下:

字段 类型 描述
id int 主键
user_id int 用户ID
group_id int 分组ID

查询不在分组表中的用户,转换成联表描述就是:在 users 表中但是不在 user_groups 表中的数据。如下图所示:

查询 SQL 如下:

SELECT
    t1.*
FROM
    users t1
    LEFT JOIN user_groups t2 ON t1.user_id = t2.user_id 
WHERE
    t2.id IS NULL
10个月前 评论
快乐的皮拉夫 (作者) 10个月前
annajax (楼主) 10个月前

其实这种片段式代码,问AI是最好的 www.aiznx.com/#/detail/codeSnippet...


你可以试试使用LEFT JOIN和IS NULL来查询未分组的用户,只需一次查询即可。示例代码如下:

SELECT u.user_id, u.user_name
FROM 用户表 u
LEFT JOIN 用户分组表 g ON u.user_id = g.user_id
WHERE g.user_id IS NULL;

这个查询将返回所有没有在用户分组表中的用户。使用LEFT JOIN可确保在用户表中的所有用户都被包含在结果集中,无论它们是否在用户分组表中。如果用户未分配到任何分组,则在用户分组表中找不到相关记录,因此使用IS NULL来筛选这些用户。

这个查询效率更高,只需一次查询即可返回结果。

10个月前 评论

啊。。。这。。。么。。。基础。。。的。。。吗?

10个月前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!