INSERT INTO ... SELECT ...如果条件失败,则返回null

时间:2012-02-09 18:27:55

标签: sqlite insert-select

我正在尝试执行以下操作:

INSERT INTO `File` (`Name`, `Owner`) 
SELECT @File, `Users`.Id
FROM `Users`
WHERE `Users`.`Name` = @UserName

但是,如果Users表中没有匹配项,我希望它仍然插入文件但是具有空值。就像在Users表上执行LEFT JOIN一样,用ON替换WHERE。但是我不能只使用LEFT JOIN,因为我没有表来加入它。任何人都可以帮助我如何做到这一点,而不是将其分成两个单独的查询?

这是专门针对SQLite的。

1 个答案:

答案 0 :(得分:0)

也许这样的事情可以解决问题:

INSERT INTO `File` (`Name`, `Owner`) 
SELECT @File, `Users`.Id
FROM (SELECT @UserName as Name) notable
left join `Users` on `Users`.`Name` = notable.Name