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

在MySQL中,如何合并两个表中的独立列?,mysql,join,Mysql,Join,我想合并表A和表B中的值,优先考虑表A中的捆绑运输成本。仅当TableB的id在TableA中不存在时,才应使用TableB的shipping_成本值 对此是否有推荐的join语句 表a id |捆绑|运输|成本| 表B id |运费|| 表C id |最终装运成本|| 请尝试以下查询: select q.*from(SELECT * FROM `t1` union select * from t2) as q group by id 您需要一种完全外部连接。使用两种不同的S

我想合并表A和表B中的值,优先考虑表A中的捆绑运输成本。仅当TableB的id在TableA中不存在时,才应使用TableB的shipping_成本值

对此是否有推荐的join语句

表a

id |捆绑|运输|成本| 表B

id |运费|| 表C

id |最终装运成本|| 请尝试以下查询:

select q.*from(SELECT *
    FROM `t1`
    union select * from t2) as q group by id
  • 您需要一种完全外部连接。使用两种不同的
    Select
    查询
  • 在第一个Select查询中,从
    表A
    中获取所有行
  • 在第二个
    选择
    查询中,仅从
    表B
    中获取那些没有 使用
    Left Join
    存在于
    TableA
    中,其中TableA.id为NULL
  • 最终,他们:
尝试:


虽然这可能回答了这个问题,但最好添加一些说明,说明这个答案如何帮助解决这个问题。请阅读了解更多-
1      |    95     |      
2      |    195    |      
5      |    50     |      
6      |    75     |    
1      |    100    |      
2      |    200    |    
3      |    300    |  
4      |    400    |    
5      |    50     |      
6      |    75     |    
select q.*from(SELECT *
    FROM `t1`
    union select * from t2) as q group by id
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