更新SELECT查询


UPDATE SELECT query?

我想更新表中的一行。

UPDATE content SET title = $title, content = $content, email = ???

电子邮件是问题所在,我从用户表中获得了电子邮件地址的ID,但没有地址,我想插入地址

如何在同一个UPDATE查询中从users表中获取电子邮件地址?

用户:

id|email
 1 johnsmith@gmail.com

下面是我的查询如何查找插入:

INSERT INTO content (title, content, email) SELECT $title, $content, email FROM users WHERE id = $id.

请注意,我知道var需要转义/安全等张贴了上面的一个明确的例子。

就像这样使用,

UPDATE content SET title = $title, content = $content,
email = (SELECT email FROM users WHERE id = $id)

为什么要复制内容表中的数据?只需使用连接来获取显示的电子邮件地址:

SELECT c.title, c.content, c.author, u.email 
FROM content c 
LEFT JOIN users u 
    ON c.author = u.id 
WHERE c.id = 1

如何知道使用哪些用户记录?

假设你的内容表中有user_id字段那么你可以在UPDATE

上执行JOIN操作
UPDATE content INNER JOIN users ON content.user_id = users.id 
SET content.title = $title, 
content.content = $content,
content.email = users.email