gpt4 book ai didi

sql - 从按两列分组的两个表中选择不匹配的行

转载 作者:行者123 更新时间:2023-11-29 14:31:25 24 4
gpt4 key购买 nike

我有两个包含不同行数的销售信息表,我想获取这些行。需要注意的一件重要事情是,记录是通过两列的键添加到表中的:sale_typesale_date

所以我认为我应该在对两个表进行联合后按这些列进行分组。并按计数过滤。但我目前的解决方案不起作用。如何正确获取不匹配的记录?

这是我尝试过的:

SELECT * FROM
(SELECT * FROM sales_copy
UNION ALL
SELECT * FROM sales)
GROUP BY sale_type, sale_date
HAVING count(*)!=1;

最佳答案

要选择两个表之间的差异,我已经设法使用完全连接成功地做到了这一点。所以在你的情况下,你会想要这样的东西:

SELECT S.*, SC.*
FROM sales AS S
FULL JOIN sales_copy AS SC ON (S.sale_type = SC.sale_type) AND (S.sale_date =
SC.sale_date
WHERE (S.sale_type IS NULL AND S.sale_date IS NULL) OR (SC.sale_type IS NULL AND
SC.sale_date IS NULL)

这样做的结果将只选择一个表中的所有行,忽略两个表中的行。

在此处查看实际效果:SQL Fiddle

关于sql - 从按两列分组的两个表中选择不匹配的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51265418/

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