sql– 如何列出不存在的项目?

sql– 如何列出不存在的项目?,第1张

概述标题可能有点令人困惑,让我解释一下,;)我有3张桌子:[names] n_id;name 1;Jeff 2;Adam [books] b_id;title 1;Book1 2;Book2 [read] n_id;b_id 表[read]是一本包含阅读书籍的表格.如果Adam读“Book1”,[read]中的项目如下所示:2;1 到现在为止还挺好.现在,有

标题可能有点令人困惑,让我解释一下,;)
我有3张桌子:

[names]n_ID;name1;Jeff2;Adam[books]b_ID;Title1;Book12;Book2[read]n_ID;b_ID

表[read]是一本包含阅读书籍的表格.
如果Adam读“Book1”,[read]中的项目如下所示:

2;1

到现在为止还挺好.
现在,有没有办法知道一个人没有读过哪些书?
我们知道只有亚当读了一本书“Book1”,所以查询应输出如下内容:

n_ID;name;b_ID;Title1;Jeff;1;Book11;Jeff;2;Book22;Adam;2;Book2

是可以在1个查询中执行此 *** 作还是需要一些脚本?最佳答案您可以使用CROSS JOIN获取名称和书籍的所有可能组合,然后使用带有IS NulL的@L_404_1@读取删除存在的行.

对于没有行存在的所有连接列,left JOIN返回NulL,因此检查r.n_ID IS NulL是否删除了连接实际在read中找到行的那些行.

SELECT n.n_ID,n.name,b.b_ID,b.TitleFROM names nCROSS JOIN books bleft JOIN read r ON ( r.n_ID = n.n_ID AND r.b_ID = b.b_ID )WHERE r.n_ID IS NulL
总结

以上是内存溢出为你收集整理的sql – 如何列出不存在的项目?全部内容,希望文章能够帮你解决sql – 如何列出不存在的项目?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/1168769.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-02
下一篇 2022-06-02

发表评论

登录后才能评论

评论列表(0条)

保存