在mysql中,如何合并两个表中的独立列?

ncecgwcz  于 2021-06-18  发布在  Mysql
关注(0)|答案(2)|浏览(507)

我想合并表A和表B中的值,优先考虑表A中的捆绑运输成本。tableb的shipping\u成本值只能在tablea中不存在其id时使用。
有推荐的join语句吗?

id |捆绑|运费||

1      |    100    |      
2      |    200    |      
3      |    300    |      
4      |    400    |

表B

id |运费||

1      |    95     |      
2      |    195    |      
5      |    50     |      
6      |    75     |

表C

id |最终|运费||

1      |    100    |      
2      |    200    |    
3      |    300    |  
4      |    400    |    
5      |    50     |      
6      |    75     |
ffscu2ro

ffscu2ro1#

你需要一种完全的外部连接。使用两个不同的 Select 查询。
在第一个select查询中,从 TableA .
在第二个 Select 查询,仅从 TableB 不存在于 TableA 使用 Left Join 以及 Where TableA.id IS NULL .
最终 Union ALL 他们:
尝试:

SELECT dt.id, 
       dt.final_shipping_cost 
FROM (
      SELECT t1.id, 
             t1.bundled_shipping_cost AS final_shipping_cost 
      FROM TableA AS t1 

      UNION ALL 

      SELECT t2.id, 
             t2.shipping_cost AS final_shipping_cost  
      FROM TableB AS t2 
      LEFT JOIN TableA AS t1 ON t1.id = t2.id 
      WHERE t1.id IS NULL 
    ) AS dt 
ORDER BY dt.id
tct7dpnv

tct7dpnv2#

尝试此查询:

select q.*from(SELECT *
    FROM `t1`
    union select * from t2) as q group by id

相关问题