データベーステーブルからビデオを取得しようとしています。条件: ユーザーのプライバシー設定で視聴が制限されていない場合にのみ、動画を含める必要があります。
ビデオ テーブル:
プライバシーは 0、1、2、または 3 です。
関係表:
すべてのビデオのページを取得したいとしましょう。私が友達ではない人のビデオは含めないでくださいという制限があります。(後で、このクエリを拡張して「連絡先」も含める必要があります)。
つまり、このプライバシー設定を持つすべての動画を照会する必要があります。
プライバシー = 0
プライバシー != 1 (プロフィール動画は非表示)
プライバシー = 3 AND私はこのメンバーの友達リストにいます
私のユーザーIDは1です。
このクエリを試しましたが、望ましい結果が得られません。
SELECT videos.*,
FROM `video_table` AS `videos`
WHERE
(
videos.privacy != 1
OR (
videos.privacy = 3
AND '1' IN (
SELECT friendslist.relationid
FROM friendslist
WHERE friendslist.userid = videos.userid
AND friendslist.friend = 'yes'
)
)
)
LIMIT 20
IF ステートメントは、クエリの選択部分でのみ使用できると思いますか?
疑似コードのクエリ: SELECT all videos WHERE privacy != 1 AND IF (privacy = 3) { myuserid must be on users_friendslist} )
すべてのビデオを表示し、友達ではない人のビデオを除外するにはどうすればよいですか?