SQLite的 - 更新基于值从另一个表中的列
问题描述:
我试图更新列记录1的ID到RECORD2的ID时:SQLite的 - 更新基于值从另一个表中的列
- 的名称是在两个表中都是相同的,并且
- 重量在更大记录2。
记录1
| ID | Weight | Name |
|----|--------|------|
| 1 | 10 | a |
| 2 | 10 | b |
| 3 | 10 | c |
RECORD2
| ID | Weight | Name |
|----|--------|------|
| 4 | 20 | a |
| 5 | 20 | b |
| 6 | 20 | c |
我曾尝试以下SQLite的查询:
update record1
set id =
(select record2.id
from record2,record1
where record1.name=record2.name
and record1.weight<record2.weight)
使用上述查询记录1的ID已更新为4的所有记录。
答
写入SELECT ...record1
引入了record1
表的一个新实例,该实例隐藏了外部表的一个实例。
为了能够引用当前行中的外部查询,刚刚从删除table1
FROM子句:
UPDATE record1
SET id = (SELECT record2.id
FROM record2
WHERE record1.name = record2.name
AND record1.weight < record2.weight);
它的工作!非常感谢你@CL。 – Prabha