Table1 Table2
id name ! id number
1 cat ! 1 10
2 dog ! 2 null
3 bat ! 3 null
4 rat ! 4 11
5 kong ! 5 null
Select *
FROM Table1 t0 left join Table2 T1 on T1.id = T2.id
id name number
1 cat 10
2 dog null
3 bat null
4 rat 11
5 kong null
I want
id name number
1 cat 10
2 dog 10
3 bat 10
4 rat 11
5 kong 11
我需要更新sql表中的数字
我的问题:我找不到适合这里的逻辑,使得 where 条件在所有这三种情况下都适用,因此它不应该破坏现有功能。
最佳答案
您可以使用 COALESCE
和子查询:
Select T1.ID, T1.Name,
COALESCE(T2.Number, (SELECT Number
FROM Table2
WHERE Table2.Number IS NOT NULL
AND Table2.ID < T1.ID
ORDER BY Table2.ID DESC
LIMIT 1)) AS Number
FROM Table1 T1
left join Table2 T2
on T1.id = T2.id
关于mysql - 如何输入null是SQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31914826/