图片和Seen_pictures,向用户显示“图片”表中的图片,然后将该图片(其在表中的ID)移动到Seen_Pictures,并向用户显示“图片”表中的新图片。我需要一个mysql方案,该方案将输出Pictures和Seen_pictures表之间的差异,这样我就知道用户未看到哪些图片,并可以输出它们。

到目前为止,我有这个功能,但它仅适用于1个用户,我需要它来考虑许多不同的用户:

$result = mysqli_query(
    $link,

    "SELECT o_Pics.Pic.PicID
    FROM o_Pics.Pic
    LEFT JOIN o_SeenPics.Seen ON o_Pics.Pic.PicID=o_SeenPics.Seen.PicID
    WHERE NOT o_Pics.Pic.ID='".$ID."' AND o_SeenPics.Seen.PicID IS NULL"
);

最佳答案

怎么样

SELECT p.p_id FROM Picture p WHERE p.p_id NOT IN
   (SELECT s.p_id FROM Seen_Picture s WHERE s.u_id = "$user_id")

Picture
p_id(Primary Key) picture

Seen_Picture
id(Primary Key) u_id p_id

10-06 08:49