gpt4 book ai didi

mysql - Mysql不等于不工作

转载 作者:太空宇宙 更新时间:2023-11-03 11:40:40 25 4
gpt4 key购买 nike

我正在尝试从 table1 获取数据,将其字段与 table2 进行比较,其中两个值不相等

例如:

news:
--
id, title
1 test
2 teeest
3 tet

newsseen:
id, newsId
1 1
2 2

以下是我对 != 的查询,

SELECT n.id, n.title, n.CreatedOn FROM news n , newsseen ns WHERE n.id != ns.newsId group by n.id;

它返回新闻表中的所有数据,而不仅仅是第 3 行

但是如果我用 =

检查,下面的查询是正确的
SELECT n.id, n.title, n.CreatedOn FROM news n , newsseen ns WHERE n.id = ns.newsId group by n.id;

它只返回第 1 2 行。

我可以知道为什么吗?请问可以找到解决方案吗?

最佳答案

您正在寻找 NOT EXISTS

SELECT n.id, n.title, n.CreatedOn 
FROM news n
WHERE Not exists (select 1 from newsseen ns where n.id = ns.newsId )

在您的第一个查询中,对于 news 表中的第一个 Id(即)1。根据您的条件 n.id != ns.newsId newsseen 表中有一条记录不等于(即)newsId = 2所以 ID=1 将被返回。

类似地,news 表中的 Id=2 有一个不匹配的记录(即)newsId=1 出现在 中newsseen 表,因此 Id=2 也将被返回。

news 表中的 Id=3 两条记录在 newsseen 中都不匹配,所以 Id=3也会被退回

关于mysql - Mysql不等于不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42042224/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com