如果我在两个不同的表中有两行,例如:
表名 - 旧
| ID | 标题 | 意见 |
|---|---|---|
| wx | 如何清洁钻头 | 30 |
| np | 最疯狂的失败 | 400 |
| 佐 | 饮食挑战 | 8 |
| 如果 | JavaScript 教程 | 0 |
表名 - 新建
| ID | 标题 | 意见 |
|---|---|---|
| wx | 如何清洁钻头 | 30 |
| np | 最疯狂的失败 | 450 |
| 佐 | 这是一个错误 | 8 |
| 如果 | 学习 JavaScript | 20 |
两个表的区别如下:
- 第 1 行 (id=wx):
title并views没有改变。 - 第 2 行 (id=np):
views增加了,而title是相同的。 - 第 3 行 (id=zo):
title已经改变,而views是相同的。 - 第 4 行 (id=lf):两者
title都views发生了变化。
期望的结果
我想要一个返回Table Name - New的查询,但任何未从Table Name - Old更改的值都应该是null,而不是id. 如果整行没有更改,则不应返回该行。
id是恒定的,不会改变。
查询结果
| ID | 标题 | 意见 |
|---|---|---|
| np | null |
450 |
| 佐 | 这是一个错误 | null |
| 如果 | 学习 JavaScript | 20 |
我得到的最接近的是
SELECT * FROM new EXCEPT SELECT * FROM old;
但这并没有null排除不变的值。
将不胜感激任何帮助。