【问题标题】:How to join two total tables using sql?如何使用sql连接两个总表?
【发布时间】:2022-06-15 20:53:33
【问题描述】:

对于大学工作,我们在 sql 中有两个表:

表 1:

         column_name1      number_P1
           PARIS             10
           LISBOA            20
           RIO               30

表2:

         column_name2      number_P2
           PARIS             100
           NEW YORK          300

我需要通过添加每个城市的总人数来加入这两个表。所以我尝试这样做:

SELECT table1.column_name1,
       number_P2 + number_P1 AS TOTAL       
       
FROM table1
LEFT JOIN table2 ON table1.column_name = table2.column_name;

但是,如果一个城市 A 出现在表 1 中而没有出现在表 2 中,这将不起作用。如果一个城市 B 出现在表 2 中而没有出现在表 1 中,也会发生同样的情况。我如何概括这些情况?

期望的输出:

         column_name      number_P
           PARIS             110
           LISBOA            20
           RIO               30
           NEW YORK          300

【问题讨论】:

    标签: sql join


    【解决方案1】:

    我们可以尝试使用UNION ALLSUM 而不是JOIN

    SELECT column_name, 
           SUM(number_P) number_P
    FROM (
        SELECT column_name1 as column_name,number_P1 as number_P
        FROM table1 
        UNION ALL
        SELECT column_name2,number_P2
        FROM table2
    ) t1
    GROUP BY column_name      
    

    【讨论】:

    • 我还有一个问题,如何重命名特定城市。比如“RIO”在哪里我想改成“RIO DE JANEIRO”
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-19
    • 2016-01-12
    • 2012-02-28
    • 2012-05-01
    相关资源
    最近更新 更多