gpt4 book ai didi

mysql - 从 SQL 中的左连接和内连接中减去计数

转载 作者:行者123 更新时间:2023-12-05 04:29:47 27 4
gpt4 key购买 nike

我想合并两个表,并从内连接的结果表中减去左连接的结果表中的订单数。这是我所做的,但我不知道这是否正确或如何进行?

WITH t1 AS (
SELECT *
FROM orders
LEFT JOIN food ON orders.id = food.id
),
t2 AS (
SELECT *
FROM orders
INNER JOIN food ON orders.id = food.id
)

SELECT
/* now what? */

现在我想减去两个表中的行数。

我不知道如何进行,我是否应该重新连接表并做减法,有没有更简单的方法?

最佳答案

您甚至不需要两个单独的查询来回答您的问题。左连接和内连接在结果集上的唯一区别是前者将保留不映射的订单记录。所以,你可以简单地写:

-- query #3

SELECT *
FROM orders o
LEFT JOIN food f
ON f.id = o.id
WHERE f.id IS NULL;

如果将上面的结果集与内部联接查询 #2 组合,您将得到整个左联接查询 #1 结果集没有 WHERE 子句。

所以计数(查询#1)=计数(查询#2)+计数(查询#3)

关于mysql - 从 SQL 中的左连接和内连接中减去计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72224258/

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