我有两个表,我希望使用WordPress中的SQL数据库来比较ID。
以下工作正常:
INSERT INTO entries(author_name)
SELECT meta_value
FROM wp_postmeta
WHERE meta_key = "user_submit_name" AND post_id = '5235';
但我想要做的是比较表条目中的ID和wp_postmeta,只要ID相同,就像这样:
INSERT INTO entries(author_name)
SELECT meta_value
FROM wp_postmeta
WHERE meta_key = "user_submit_name" AND post_id = entries.post_id;
但上述方法无效。 是否可以在一行中执行此操作,还是必须创建一个过程?
答案 0 :(得分:0)
你可以这样做,你只需要使用一个连接。
INSERT INTO entries(author_name)
SELECT meta_value
FROM wp_postmeta
JOIN entries on wp_postmeta.post_id = entries.post_id
WHERE meta_key = "user_submit_name" AND post_id = entries.post_id;
这会将meta_value插入条目表中的post_id,这些条目在wp_postmeta中具有匹配项。这意味着如果您运行insert语句两次,您将尝试两次执行相同的插入。如果这是一个问题,我们可以添加一个子选择不插入重复记录。此外,如果有多个具有相同帖子ID的条目,我们将遇到相同的问题。但是,给定的sql语句应该适用于单个运行,其中条目post_id对于条目表是唯一的。