更新SELECT查询?

时间:2013-05-30 09:41:39

标签: php mysql

我想更新表格中的一行。

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

电子邮件是问题,我有来自users表的电子邮件地址的ID而不是地址,我想插入地址。

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

用户:

id|email
 1 johnsmith@gmail.com

以下是我的查询查找插入内容的方法:

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

请注意,我知道vars需要转发/安全等,上面有一个明确的例子。

3 个答案:

答案 0 :(得分:3)

只需像这样使用,

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

答案 1 :(得分:2)

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

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

答案 2 :(得分: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