问题白色更新和IF(选择)

时间:2015-10-22 15:54:04

标签: mysql vb.net

使用MySql我试过这个:

Update ModePaiement SET Emplacement = 
   IF((SELECT Emplacement FROM Escompte WHERE Emplacement = 4) 
   OR 
   (SELECT Emplacement FROM ModePaiement WHERE Emplacement = 4), 
   13, 
   11) 
   WHERE id = 1

但是我收到一条错误,我无法在我的选择部分中使用ModePaiement ...

如果我将ModePaiement替换为任何其他表,那么它可以正常工作......

也许是因为我也在ModePaiement表中更新......

还有其他办法吗?

1 个答案:

答案 0 :(得分:0)

http://sqlfiddle.com/#!9/2c710e/1

UPDATE ModePaiement 
LEFT JOIN (SELECT Emplacement 
      FROM ModePaiement WHERE Emplacement = 4
     UNION
     SELECT Emplacement 
      FROM Escompte WHERE Emplacement = 4) t
ON 1
  SET ModePaiement.Emplacement = IF(t.Emplacement IS NULL,11,13)
WHERE id = 1