استعلام SQL للعثور على المستخدمين الذين ليس لديهم أي اشتراك في قائمة محددة (كثير إلى كثير)
-
11-09-2019 - |
سؤال
وجود طاولتين، "المستخدمون" و "قوائم"، وعدد العديد من الاشتراكات "الجدول يتعلق بالمستخدمين بالقوائم (وبالتالي وجود مفاتيح أجنبية user_id
و list_id
)، ما سيكون استعلام SQL واحد للعثور على جميع المستخدمين الذين ليس لديهم أي اشتراك مع معين list_id
(بشكل طبيعي بما في ذلك المستخدمين الذين ليس لديهم اشتراكات على الإطلاق)؟
المحلول
الوقت للخروج not exists
تكرارا:
select
u.user_id
from
users u
where
not exists (
select 1 from subscriptions s where s.user_id = u.user_id and s.list_id = N
)
لا تنتمي إلى StackOverflow