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

如何查询B表中无关联评论记录的A表数据?

获取B表无对应评论记录的A表数据

表结构

A表:

A_id name  
1    apple 
2    orange
3    sexy

B表:

B_id A_id comment 
1    1    abcde

期望结果

A_id name 
2    orange 
3    sexy

以下是几种可行的MySQL查询语句:

方法1:LEFT JOIN + IS NULL

这是最直观常用的写法,通过左连接保留A表所有行,筛选B表无匹配的记录:

SELECT a.A_id, a.name
FROM A a
LEFT JOIN B b ON a.A_id = b.A_id
WHERE b.A_id IS NULL;

逻辑说明:左连接会保留A表的每一行,若B表中没有对应A_id的记录,关联后b.A_id会为NULL,通过WHERE条件筛选出这些行即可得到目标结果。

方法2:NOT EXISTS

语义贴合需求,直接判断B表不存在对应记录:

SELECT a.A_id, a.name
FROM A a
WHERE NOT EXISTS (
    SELECT 1
    FROM B b
    WHERE b.A_id = a.A_id
);

逻辑说明:子查询检查B表是否存在与当前A表行A_id匹配的记录,NOT EXISTS会筛选出所有无匹配的A表行。

方法3:NOT IN(需注意NULL值)

如果B表的A_id字段不存在NULL值,可使用此写法:

SELECT A_id, name
FROM A
WHERE A_id NOT IN (
    SELECT A_id
    FROM B
    WHERE A_id IS NOT NULL
);

注意:若B表的A_id包含NULL值,NOT IN会返回空结果,因此必须加上WHERE A_id IS NOT NULL过滤,或确认B表A_id无NULL值时使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 15:54:55