【问题标题】:How not to select values which exist in another table如何不选择另一个表中存在的值
【发布时间】:2020-03-25 12:43:09
【问题描述】:

我有两个 MySQL 表 table1 和 table 2。

表一:-

batch    semester  scode
IT         6        DA
IT         6        IA
IT         6        FA

表2:-

batch    subject   user
IT        DA       1

我想运行一个查询来得到这个输出:-

scode
IA
FA

所以基本上我想从表 1 中检索不存在于表 2 中的值,用于 id 为 1 且批次为 IT 且学期为 6 的用户。我不熟悉从两个表中获取数据的概念,所以我想不出办法来做到这一点。非常感谢任何帮助。

【问题讨论】:

标签: mysql sql database select


【解决方案1】:

你可以使用NOT EXISTS

SELECT 
scode
FROM TABLE1 T1 
WHERE NOT EXISTS (
   SELECT 1 FROM TABLE2 T2 WHERE T1.scode = T2.subject
);

SEE DEMO


你可以使用NOT IN

SELECT 
scode
FROM TABLE1 T1 
WHERE T1.scode NOT IN (
   SELECT T2.subject FROM TABLE2 T2 
)

SEE DEMO


【讨论】:

  • 我需要根据批次和学期选择scode。
  • 这两个表有什么关系?
  • @KartikeyVishwakarma 。 . .发布此答案后,您更改了问题。这很粗鲁,因为这个答案现在已经过时了,而且那些竭尽全力帮助你的人可能会被否决。我建议您撤回您的编辑,接受这个答案,然后再问一个问题。
猜你喜欢
  • 1970-01-01
  • 2011-02-27
  • 1970-01-01
  • 2014-02-21
  • 1970-01-01
  • 2021-08-18
  • 1970-01-01
  • 1970-01-01
  • 2013-04-17
相关资源
最近更新 更多