多対多の関係を持つ 3 つのテーブルに対して、次の MYSQL DB 構造があります。以下に示すように、多くのユーザーが多くの車を持つことができ、車は多くのユーザーに使用できます。
ユーザー
ID | Name
---------
100|John
101|Smith
車
ID | Name
---------
50|BMW
60|Audi
ユーザー_車
ID | UID | CID
---------
1| 100 |50
2| 100 |60
3| 101 |60
ページ users_cars.php があります。このページには 2 つのドロップダウン リストがあります。
- すべてのユーザーのリスト
- すべての車のリスト
このページでは、ユーザーのリストからユーザーを選択し、車のリストから車を選択し、[追加] をクリックして users_cars テーブルに挿入できます。
何をしようとしているのかは、ユーザーのドロップダウン リストから、車のテーブルから利用可能なすべての車にリンクされているすべてのユーザーを除外することです。
上記の例では、ユーザーのドロップダウン リストには「Smith」のみが表示されます。これは、「John」が利用可能なすべての車 (BMW、AUDI) にリンクされているためです。「Smith」にも BMW がある場合、彼はリストから除外されます。この条件には選択クエリが必要ですが、users_cars テーブル内のユーザー レコードをカウントするためにネスト選択クエリを使用したくありません。