Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/275.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 更新选择查询?_Php_Mysql - Fatal编程技术网

Php 更新选择查询?

Php 更新选择查询?,php,mysql,Php,Mysql,我想更新表中的一行 UPDATE content SET title = $title, content = $content, email = ??? 电子邮件是问题所在,我有用户表中电子邮件地址的ID,但没有地址,我想插入地址 如何在同一更新查询中从users表中获取电子邮件地址 用户: id|email 1 johnsmith@gmail.com 以下是我的查询如何查找插入: INSERT INTO content (title, content, email) SELECT $ti

我想更新表中的一行

UPDATE content SET title = $title, content = $content, email = ???
电子邮件是问题所在,我有用户表中电子邮件地址的ID,但没有地址,我想插入地址

如何在同一更新查询中从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)
就这样用,

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

为什么要复制内容表中的数据?只需使用加入即可获得显示的电子邮件地址:

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 content INNER JOIN users ON content.user_id = users.id 
SET content.title = $title, 
content.content = $content,
content.email = users.email

您如何知道要使用哪些用户记录

假设内容表中有一个user_id字段,那么可以在更新时进行连接

UPDATE content INNER JOIN users ON content.user_id = users.id 
SET content.title = $title, 
content.content = $content,
content.email = users.email

你必须加入。btw SELECT
$title
?btw SELECT$title-是的,这就是方法。你的意思是
'$title'
?你的意思是'$title'-如上所述:我知道VAR需要转义/安全性等,上面发布了一个明确的示例。我不是在谈论转义/安全性。您必须告诉SQL引擎这是一个字符串,您必须进行连接。btw SELECT
$title
?btw SELECT$title-是的,这就是方法。你的意思是
'$title'
?你的意思是'$title'-如上所述:我知道VAR需要转义/安全性等,上面发布了一个明确的示例。我不是在谈论转义/安全性。你必须告诉SQL引擎这是一个字符串。我不想显示电子邮件地址。好吧,你不需要显示它本身,最好使用联接来检索现有的电子邮件地址,而不是在另一个表中复制它。如果用户更新他们的电子邮件地址,现在需要更新的字段有2个,而不是1我不想显示电子邮件地址。好吧,你不需要显示它本身,最好使用联接检索现有的电子邮件地址,而不是在另一个表中复制它。如果用户更新了他们的电子邮件地址,现在有2个字段需要更新,而不是1个