接続されたテーブルに存在しないレコードを取得する
P粉773659687
P粉773659687 2023-09-10 12:16:29
0
1
525

MySQL データベースに 3 つのテーブルがあります。最初のテーブルにはユーザーが含まれ、2 番目のテーブルには項目が含まれます。以下にこの 2 つの構造を示します。

リーリー

3 番目のテーブルは接続テーブルです。

リーリー

ユーザーとそのユーザーに割り当てられていないプロジェクトのリストを返すクエリが必要です。

例では 次のユーザーがいます

リーリー

以下の商品もございます

リーリー

私の結合テーブル内

リーリー

したがって、ユーザーが所有していないアイテムのリストを取得したいと考えています。例:

リーリー

そのような結果を得るのに最適なクエリは何ですか。いくつかの左結合、左外部結合、左結合などを試していますが、成功しません。

編集1: これまでのところ、次のクエリを試してみました:

ああああ

P粉773659687
P粉773659687

全員に返信(1)
P粉818088880

通常、 ユーザーと製品をクロス結合してすべての可能な組み合わせを生成し、ブリッジ テーブルに既に存在する関連付けをフィルターで除外します。 リーリー

パフォーマンスを向上させるには、

user_items(userid, itemid) にインデックスが必要です (これらの列に unique 制約がある場合、それはすでに存在しているはずです)。 p>逆引き

左結合を使用してロジックを表現することもできます: リーリー

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート