zqm3351533 2011-09-05 17:02
浏览 1002
已采纳

如何查询出一个表中的其中一个字段的值在另一个表中不存在的记录

有两个表:

[code="sql"]create table a(
id VARCHAR(255) PRIMARY KEY,
name CHAR(50)
);

create table b(
id VARCHAR(255) referrence foreign key a(id),
name CHAR(50)
)[/code]

问:如何查询出表a中id列的值在表b中不存在的记录.

目前我能想到的方法是:

[code="sql"]SELECT
*
FROM
(
SELECT
a.*,
b.id _id
FROM
a
LEFT JOIN b
WHERE
a.id = b.id
)
t
WHERE
t._id IS NULL;[/code]

有没有人能想到更好一点的方法? 请指教! 另外,我用的数据库是DB2.

  • 写回答

4条回答 默认 最新

  • rainbow702 2011-09-05 17:52
    关注

    [code="java"]
    select *
    from a A
    where not exists ( select 1
    from b B
    where A.id = B.id);
    [/code]
    效率应该比你的高

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作