【问题标题】:MySQL: Select entries that do not exist in another table [duplicate]MySQL:选择另一个表中不存在的条目[重复]
【发布时间】:2014-07-07 09:18:38
【问题描述】:

我有一个名为quotesArtists 的表格,其中列出了我们目前为其引用的所有名人。

我有另一个名为 celebs 的表,其中包含所有名人的个人资料。

我想列出我的 celebs 表中当前没有引号的所有条目。我怎么做?谢了!

【问题讨论】:

  • 通过阅读基本的 sql 教程。提示:左连接。
  • 这个问题似乎是题外话,因为没有显示任何努力,任何教程都可以回答这个问题。

标签: mysql


【解决方案1】:

使用left join

select c.*
from celebs c
left join quotesArtists q on q.celecb_id = c.id
where q.celeb_id is null

this great explanation of joins

【讨论】:

  • 一切为了代表,不是吗?
  • 是的,我可以引用你的帖子吗? “一个什么都没尝试过的用户有点烦人。10,000 个什么都没尝试过的用户或多或少会导致网站的死亡。”和“缺乏研究工作导致无数重复”。这就是您通过回答此类问题导致的结果。而且 SQL 已经很成熟了,你不觉得吗?不是一些记录不全的新事物。
  • 就像有些烦人、浪费时间的老师要求在代数问题的解决方案旁边看到长除法一样,有些烦人的人要求看到“你已经尝试过什么” ” 对于唯一理智的答案是“什么都没有,因为我不知道该尝试什么的问题
  • 对于编程问题或更复杂的 sql 查询,我同意您的观点,但我们在这里讨论的是 sql 的基础知识之一。问题本身实际上是可以的,只要它还没有被回答。但是这种问题每天都会在这里被问到。所以我的观点是,这些问题要么没有得到回答,要么是我应该首先完成的更好的选择,关闭为重复项(从右侧的“相关”列中选择:stackoverflow.com/questions/10912230/…)。跨度>
【解决方案2】:
select c.*
from celebs c
left join quotesArtists q on q.celecb_id = c.id
where q.celeb_id is null

select c.*
from celebs c
WHERE c.id NOT IN (select celecb_id from quotesArtists)

【讨论】:

    猜你喜欢
    • 2021-10-31
    • 2013-05-19
    • 2012-06-10
    • 2015-02-25
    • 1970-01-01
    • 1970-01-01
    • 2020-10-08
    • 2012-01-08
    • 2011-05-09
    相关资源
    最近更新 更多