MySQL UNION按日期

阿迈·迪亚姆(Amay diam)

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

在此处输入图片说明如何用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值。

演示版

如果tabel_a的行数也可以超过tabel_b的行数,则必须使用FULL OUTER JOIN因为MySQL还没有内置的FULL OUTER JOIN,所以可以通过aLEFT JOIN和a的UNION来模拟RIGHT JOIN正如Strawberry所指出的,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

演示(注意:使用示例数据可以获得与第一个相同的结果)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章