小编Cha*_*xyx的帖子

更新加入 -> 插入 NULL

这个问题很简单,但是我通过搜索“UPDATE JOIN INSERT”和其他类似的东西没有找到答案。

我需要对两个表('main' 和 'sub')进行更新,而一个数据集可能不存在。那么应该有一个简单的 INSERT 之前执行...在一个语句中。

“主要”始终存在。
“子”没有。

我梦幻般的 SQL 解决方案是这样的:

UPDATE main LEFT JOIN sub on main.primary=sub.primary
SET main.foo='bar', sub.foo2='bar2'
CASE sub.primary IS NULL {INSERT INTO sub SET sub.primary=main.primary};
Run Code Online (Sandbox Code Playgroud)

'CASE'-part 是自由泳的,大概是行不通的。但正确的做法是什么?

它绝对必须是“UPDATE [...] LEFT JOIN [...] SET a=aVal, b=bVal, [...]” - 语句。 它必须可扩展至最多 5 个 LEFT JOIN 表,并且无需“SET(..) VALUES(..)”

有没有可能的解决方案?

mysql sql left-join sql-update

0
推荐指数
1
解决办法
1020
查看次数

标签 统计

left-join ×1

mysql ×1

sql ×1

sql-update ×1