首页 > 解决方案 > 使用 SQL 合并两个表

问题描述

我有两个需要合并的表。

表 1 是:

ID 产品代码 花费
1 101 100
1 102 200
1 103 300
2 201 400
3 301 500
3 302 600

表2有

ID 产品代码 花费 产品使用期限
1 101 100 20
1 102 200 30
3 302 600 40

我想合并这些,以便表 2 中仅保留表 1 中的 ID。表 2 不包含每个 ID 的所有产品代码,但我希望我的最终表有它。

输出必须有

ID 产品代码 花费 产品使用期限
1 101 100 20
1 102 200 30
1 103 300
3 301 500
3 302 600 40

对此的任何帮助将不胜感激。我在 ID 上尝试了左连接,但它产生了许多重复项。

标签: mysql

解决方案


SELECT  *,
    (
        SELECT `product_tenure` 
        FROM `second_table` 
        WHERE `second_table`.`id` = `first_table`.`id` 
        AND `first_table`.`product_code` = `second_table`.`product_code`
    ) product_tenure
FROM    `first_table`
WHERE   `id` IN (SELECT DISTINCT `id` FROM `second_table`)

解释:

id从第一个表中second table选择。to keep

因为product_tenure只有在second_table选择它们时才结合idproduct_code

结果:

结果


推荐阅读