【发布时间】:2018-06-26 10:59:36
【问题描述】:
我需要从表 Customer 中选择所有 Customers,其中表 Customer_Value 中的 Value 不是 4。
客户:
+------------+-------+
| Customer | ... |
+------------+-------+
| 312 | ... |
| 345 | ... |
| 678 | ... |
+------------+-------+
客户价值:
+------------+-------+
| 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
所以我的问题是:
这是一个快速而好的查询吗?还是有其他更好的解决方案来获取所有客户 ID?
【问题讨论】:
-
请在标签中指定您使用的数据库
标签: sql sql-server join database-performance