1

PicturesとSeen_pictures、Picturesテーブルの画像がユーザーに表示され、その画像(テーブル内のID)がSeen_Picturesに移動され、Picturesテーブルの新しい画像がユーザーに表示されます。PicturesテーブルとSeen_picturesテーブルの違いを出力するmysqlスキームが必要です。これにより、ユーザーが見たことがない写真を把握し、それらを出力できます。

私はこれまでにこれを持っていますが、それは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"
);
4

2 に答える 2

0

どうですか

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
于 2012-07-23T19:10:43.947 に答える
0

元のクエリにいくつかの小さな変更を加えて、必要なものを取得できると思います。

SELECT s.UserId, p.PicID 
FROM o_Pics.Pic p LEFT JOIN
     o_SeenPics.Seen s
     ON p.PicID = s.PicID and
        p.OwnerUserId != s.UserId
where s.PicId is null and p.OwnerUserId != s.UserId   

これは、picに所有者のユーザーIDが含まれていることを前提としています。また、画像が表示されていないユーザーIDも返します。

于 2012-07-23T20:11:14.130 に答える