Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.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
Mysql 是否在更新时左连接到筛选行?_Mysql_Sql - Fatal编程技术网

Mysql 是否在更新时左连接到筛选行?

Mysql 是否在更新时左连接到筛选行?,mysql,sql,Mysql,Sql,我正在尝试更新一个表,但我需要执行左连接以确定要选择的行 这是我一直在尝试的两个例子,我想通过看到其中任何一个,我都清楚地知道我想要做什么: UPDATE `User_Likes` SET `Status` = 'read' LEFT JOIN Posts ON User_Likes.PID = Posts.ID WHERE Posts.UID = '1' 在这里,我尝试另一种方式: UPDATE `User_Likes` SET `Status` = 'r

我正在尝试更新一个表,但我需要执行左连接以确定要选择的行

这是我一直在尝试的两个例子,我想通过看到其中任何一个,我都清楚地知道我想要做什么:

   UPDATE `User_Likes` 
      SET `Status` = 'read'
LEFT JOIN Posts ON User_Likes.PID = Posts.ID
    WHERE Posts.UID = '1'
在这里,我尝试另一种方式:

UPDATE `User_Likes` 
   SET `Status` = 'read' 
 WHERE `ID` IN (SELECT Posts.ID
                  FROM `User_Likes`
             LEFT JOIN Posts ON User_Likes.PID = Posts.ID
                 WHERE Posts.UID = '$userID')

看看这个例子

UPDATE User_Likes
LEFT JOIN
Posts ON User_Likes.PID = Posts.ID 
SET Status='read'
WHERE Posts.UID = '1' ;

查询的问题是Id只需要一个Id,而select语句返回多个Id。 因此:


诸如此类的东西。

您能提供更多关于错误的信息吗?样本数据,前后。查看您想要的结果。是的,我想更新字段状态以读取,但我需要进行连接以确定谁是喜欢的帖子的作者。(我在User_Likes中只有Post ID)。第一次查询返回:
您的SQL语法有错误(没有提供更多信息)
第二次查询返回:
您不能在FROM子句中为更新指定目标表“User\u Likes”
UPDATE `User_Likes` u LEFT JOIN Posts p 
ON u.User_Likes.PID = p.Posts.ID
SET `Status` = 'read'
WHERE p.Posts.UID = '1'
UPDATE `User_Likes` u LEFT JOIN Posts p 
ON u.User_Likes.PID = p.Posts.ID
SET `Status` = 'read'
WHERE p.Posts.UID = '1'