EXISTS 条款
客户表
ID |
名字 | 姓 |
---|---|---|
1 |
ÖzgUr | OZTURK |
2 |
优素福 | MEDI |
3 |
亨利 | 泰 |
订单表
ID |
顾客 ID | 量 |
---|---|---|
1 |
2 | 123.50 |
2 |
3 | 14.80 |
为所有客户提供至少一个订单
SELECT * FROM Customer WHERE EXISTS (
SELECT * FROM Order WHERE Order.CustomerId=Customer.Id
)
结果
ID |
名字 | 姓 |
---|---|---|
2 |
优素福 | MEDI |
3 |
亨利 | 泰 |
让所有客户无需订购
SELECT * FROM Customer WHERE NOT EXISTS (
SELECT * FROM Order WHERE Order.CustomerId = Customer.Id
)
结果
ID |
名字 | 姓 |
---|---|---|
1 |
ÖzgUr | OZTURK |
目的
EXISTS
,IN
和 JOIN
有时会用于相同的结果,但是,它们不等于:
EXISTS
应该用于检查另一个表中是否存在值IN
应该用于静态列表- 应使用
JOIN
从其他(s)表中检索数据