如何以 Common Table Expressions (CTE's) 格式为多个表编写更新查询?
How to write an UPDATE Query for multiple tables in Common Table Expressions (CTE's) format?
如何将以下 UPDATE 语句重写为通用 Table 表达式 (CTE) 格式?
DB::statement('UPDATE taggables, threads SET taggables.created_at = threads.created_at, taggables.updated_at = threads.updated_at WHERE taggables.thread_id = threads.id');
我真的不明白在这里使用 CTE 有什么意义。由于您的目的似乎是从 threads
更新 taggables
,我建议简单地使用 Postgres' update/join syntax,如下所示:
update taggables ta
set created_at = th.created_at, updated_at = th.updated_at
from threads th
where ta.thread_id = th.id
如何将以下 UPDATE 语句重写为通用 Table 表达式 (CTE) 格式?
DB::statement('UPDATE taggables, threads SET taggables.created_at = threads.created_at, taggables.updated_at = threads.updated_at WHERE taggables.thread_id = threads.id');
我真的不明白在这里使用 CTE 有什么意义。由于您的目的似乎是从 threads
更新 taggables
,我建议简单地使用 Postgres' update/join syntax,如下所示:
update taggables ta
set created_at = th.created_at, updated_at = th.updated_at
from threads th
where ta.thread_id = th.id