0

テーブルを更新しようとしていますが、選択する行を決定するために左結合を行う必要があります。

これらは私が試みてきたことの2つの例です。それらのいずれかを見れば、私が何をしたいのかは明らかだと思います:

   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')
4

3 に答える 3

0

この例を見てください

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

SQL フィドルのデモ

于 2012-09-25T04:22:21.543 に答える
0

クエリの問題は、Id が 1 つの ID のみを想定し、select ステートメントが複数の ID を返すことです。それで:

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

このようなもの..

于 2012-09-25T04:31:19.430 に答える
0
UPDATE `User_Likes` u LEFT JOIN Posts p 
ON u.User_Likes.PID = p.Posts.ID
SET `Status` = 'read'
WHERE p.Posts.UID = '1'
于 2012-09-25T06:26:32.403 に答える