ギャラリーに画像を関連付ける3つのテーブルを含むmySQLデータベースがあります。画像はテーブル「ファイル」とギャラリー「ギャラリー」のギャラリーに格納されるため、それらの間の関連付けに「ギャラリー_ファイル」という中間テーブルを使用します。 "gallery_files"テーブルは、それぞれメインテーブルの2つのID(F_ID、G_ID)で構成されています。同じクエリでmySQL double filtering
ファイル/イメージは複数のギャラリーに関連付けることができるため、異なるG_IDに対して同じF_IDのレコードが「gallery_files」に存在する可能性があります。
ここでは、指定されたギャラリーに関連付けられていないすべてのイメージを表示するmySQLクエリを作成します。だから私は、次のクエリを使用します。
(のは、IDとギャラリーのために言わせて:9)
SELECT * FROM files
INNER JOIN gallery_files ON files.F_ID=gallery_files.F_ID
WHERE files.F_FILETYPE IN ('.jpg','.jpeg','gif','png')
AND files.F_DELETED = 0
AND gallery_files.G_ID <> 9
私の問題は、異なるギャラリーに関連した画像の記録がある場合、それはまだそれをもたらすということです。私はなぜこれが起こるのか知っていますが、仕事をするためのスマートなクエリは考えられません。私は2つのクエリを使用してこれを解決する方法を知っていますが、可能であれば、それを避けたいと思います。
どのような考えですか?
9はどうもありがとうございました
files
からこれらの行を取得します。それは働いた! :) –