SQL - 插入选择(多列)

时间:2016-08-09 21:56:55

标签: php mysql sql

前端网络家伙抛入SQL深渊。下面是我们当前SQL查询的原型:

 INSERT INTO table (table column)
 SELECT ad.val1, web.val2, ad.val3
 FROM ad
 LEFT JOIN web
 ON ad.val 4 = web.val4   

我们最近添加了一个web.val5列,我们希望将它的信息插入到与web.val4相同的列中

我使用ALL子句尝试了以下内容:

 INSERT INTO table (table column)
 SELECT ad.val1, web.val2, ad.val3
 FROM ad
 LEFT JOIN web
 ON ad.val 4 = web.val4   
 AND ad.val4 = web.val5  

但我一直得0(或NULL?)。是否有一个可以添加到LEFT JOIN的子句,可以将值等同于同一个表中不同列中的两个不同值?对不起,如果这令人困惑,我自己几乎无法理解。

2 个答案:

答案 0 :(得分:0)

你可以考虑加入它两次并匹配那个条件,如

 INSERT INTO table (table column)
 SELECT ad.val1, web.val2, ad.val3
 FROM ad
 LEFT JOIN web
 ON ad.val4 = web.val4  
 LEFT JOIN web w           //second join
 ON ad.val4 = w.val5  

答案 1 :(得分:0)

在这里猜一点,但如果我理解了您的问题,那么您的and条件会使其返回null值。相反,您需要orin

INSERT INTO table (table column)
SELECT ad.val1, web.val2, ad.val3
FROM ad
    LEFT JOIN web ON ad.val4 IN (web.val4, web.val5)