前端网络家伙抛入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的子句,可以将值等同于同一个表中不同列中的两个不同值?对不起,如果这令人困惑,我自己几乎无法理解。
答案 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
值。相反,您需要or
或in
:
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)