Мне нужно выбрать все Customer
s из таблицы Customer
, где Value
в таблице Customer_Value
не равно 4.
Клиенты:
+------------+-------+
| Customer | ... |
+------------+-------+
| 312 | ... |
| 345 | ... |
| 678 | ... |
+------------+-------+
Customer_Value:
+------------+-------+
| Customer | Value |
+------------+-------+
| 312 | 1 |
| 312 | 2 |
| 345 | 1 |
| 345 | 2 |
| 345 | 3 |
| 678 | 1 |
| 678 | 2 |
| 678 | 4 |
+------------+-------+
Чтобы получить мой результат, я использовал следующий запрос:
SELECT C.Customer FROM [Customer] C
Left join Customer_Value V ON (C.Customer = V.Customer)
WHERE C.Customer NOT IN (SELECT Customer FROM [Customer_Value] WHERE Value = '4')
GROUP BY C.Customer
Итак, мой вопрос:
Это быстрый и хороший запрос? Или есть другие лучшие решения для получения всех идентификаторов клиентов?