假设我有两个表:
USER
+------+------+-------------------+
| ID | NAME | CREATED_TIMESTAMP |
+------+------+-------------------+
| 1 | N1 | Null |
+------+------+-------------------+
| 2 | N2 | Null | <--------- acceptor of reference-value
+------+------+-------------------+ \
| ... | ... | ... | \
+------+------+-------------------+ \
\
REFERENCE_CREATED_TIMESTAMPS \
+-------------+----+-------------------+ these records match
| TABLE_NAME | ID |CREATED_TIMESTAMP | /
+-------------+----+-------------------+ /
| USER | 1 | 12.03.12 17:20:40 | /
+-------------+----+-------------------+ /
| USER | 2 | 14.03.12 10:12:54 | <--- reference-value
+-------------+----+-------------------+
| FOO_TABLE | 1 | 17.05.12 08:10:01 |
+-------------+----+-------------------+
| ... | ...| ... |
+-------------+----+-------------------+
现在我想使用 REFERENCE_CREATED_TIMESTAMPS
表中的值填充 USER 表中的 CREATE_TIMESTAMP 列,即对于 ID=2 的用户,我将使用来自 CREATED_TIMESTAMP
的值REFERENCE_CREATED_TIMESTAMPS
行,其中 TABLE_NAME=USER
和 ID=2
。
对 USER 表的所有记录执行此操作的查询是什么?
最佳答案
尝试这样..
Update UserTable Set CREATED_TIMESTAMP=
(Select Min(CREATED_TIMESTAMP) from REFERENCE_CREATED_TIMESTAMPS where
REFERENCE_CREATED_TIMESTAMPS.Id=UserTable.Id and Table_Name='User')
关于sql - 如何使用另一个表中记录按 id 匹配的值更新表中的所有记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17152480/