gpt4 book ai didi

Mysql 按日期 UNION

转载 作者:行者123 更新时间:2023-11-29 07:54:50 25 4
gpt4 key购买 nike

我在查询 Mysql 时遇到问题。我有 2 张如图所示的表格,我也想得到如图所示的结果...

enter image description here如何使用 UNION 进行查询?谢谢..对不起我的英语

最佳答案

您可以通过 LEFT JOIN 获得此结果:

SELECT
b.date_b as date_all,
a.quota_a,
b.quota_b
FROM
tabel_b b
LEFT JOIN
tabel_a a
ON
a.id_a = b.id_b

您必须从 tabel_b 获取日期信息,否则您会得到 id = 4 的 NULL 值。

Demo

如果 tabel_a 的行数也比 tabel_b 多,那么您必须使用 FULL OUTER JOIN。因为 MySQL 没有内置的 FULL OUTER JOIN,所以您可以通过 LEFT JOINRIGHT JOIN 的 UNION 来模拟它。正如草莓所指出的,也许 id 列的相等是简化的结果。为此,我将日期列的相等性添加到连接条件中:

请注意,您必须使用 UNION,而不是 UNION ALL 来仅获取不同的行。

SELECT
b.date_b as date_all,
a.quota_a,
b.quota_b
FROM
tabel_b b
LEFT JOIN
tabel_a a
ON
a.id_a = b.id_b
AND
a.date_a = b.date_b
UNION
SELECT
b.date_b as date_all,
a.quota_a,
b.quota_b
FROM
tabel_a a
LEFT JOIN
tabel_b b
ON
a.id_a = b.id_b
AND
a.date_a = b.date_b

Demo (注意:使用示例数据得到的结果与第一个结果相同)。

关于Mysql 按日期 UNION,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25421845/

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