假设我有两张牌桌:posts
和tags
。我想通过纯SQL迭代所有posts
并将posts.type
设置为user
。对于那些匹配帖子的post.id
,我需要为该行创建一个新的tags
,其中包含post.key
。
posts Table:
id
type
tags
id
post_key
name
这样的事情(伪代码):
FOREACH(SELECT post.id FROM posts WHERE post.type = 'user')
INSERT INTO tags (post_key, name) VALUES (post.id, 'mytag')
单独使用SQL是否可行?
答案 0 :(得分:2)
不确定。您可以简单地使用带有另一个表中的select语句的插入。它在逻辑上与迭代每行不一样,但会得到相同的结果(并且表现更好)
尝试:
INSERT INTO tags (post_key, name)
SELECT post.id, 'mytag'
FROM posts
WHERE post.type = 'user'