gpt4 book ai didi

mysql - 将所有不存在的记录统计到其他表 - SQL 查询

转载 作者:可可西里 更新时间:2023-11-01 07:39:10 24 4
gpt4 key购买 nike

我有两 (2) 个表,我正在尝试计算 Table1 和 Table1_delta 中的所有记录,因为 Table1_delta 中的页名尚未列在 Table1 中。如果 Table1_delta 中的 pagename 被列到 Table1,status 必须为 1,这样它才会包含在计数结果中。

示例表结构:

表1

+-----------+--------+
| pagename | status |
+-----------+--------+
| pagename1 | 2 |
| pagename2 | 1 |
+-----------+--------+

Table1_delta

+-----------+
| pagename |
+-----------+
| pagename1 |
| pagename2 |
| pagename3 |
| pagename4 |
+-----------+

表格示例应返回"3"

pagename3 和 pagename4 未在 Table1 中列出(返回 2)并且 Table1 中的 pagename2 的状态 = 1(返回 1)。总共有来自 Table1_delta 的 3 个页面名称 未在 Table1 中列出,并从 Table1 记录状态 = 1。我想知道如何查询这个?我正在使用 MySQL v5.6.17。谢谢!

最佳答案

这是使用连接的替代解决方案:

SELECT COUNT(*)
FROM Table1_delta t1 LEFT JOIN Table1 t2
ON t1.pagename = t2.pagename
WHERE t2.status IS NULL OR t2.status = 1

上面查询的临时表是这样的:

+-----------+--------+
| pagename | status |
+-----------+--------+
| pagename1 | 2 | # this row is NOT counted
| pagename2 | 1 | # +1 this row has status = 1 and is counted
| pagename3 | null | # +1 this row has status = null and is counted
| pagename4 | null | # +1 this row is also null and is counted
+-----------+--------+

查看下面的链接以获取正在运行的演示。

SQLFiddle

关于mysql - 将所有不存在的记录统计到其他表 - SQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32687899/

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