我想更新表格中的一行。
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需要转发/安全等,上面有一个明确的例子。
答案 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