たとえば、ユーザーが1つのグループにしか属せないアプリケーションがあります。メンバーを持たないグループのリストを選択したい場合、正しいSQLは何でしょうか?私はちょうど質問を把握しようとしているような気がして、もう一度消えます。テーブル内の、他のテーブルの外部キーに表示されないすべてのアイテムを選択します。
ボーナスポイント - 代替シナリオでは、多対多のペアリングで、未使用のグループを特定するSQLは何ですか?
多対多Table 'users': | user_id | group_id |
Table 'groups': | group_id |
:あなたは具体的なフィールド名:) 1対多たい場合
(最初のもののために
Table 'users': | user_id |
Table 'groups': | group_id |
Table 'user-group': | user_id | group_id |
どちらの回答もありがとうございます。 2つの方法の間に機能的な違いがあるのであれば私は興味があります。 – dimo414
@ dimo414 - 少なくともSql Server(2005)では、私のバージョンの実行計画は短く、わずかにコストがかかります。本当に、大量のデータセットを使用していない限り、どれが読みやすいと思うかは分かりません。 =) – Rob
しかし、users_groupsの65,536行の同じバッチで両方のクエリを実行するだけで、クエリはバッチコストの1%で、バッチコストの99%になります。しかし、合計で2番目 – Rob