46 The EXISTS Operator
-
找出所有具有invoice的client
-
可以用 IN 实现
- 找出invoices 列表中的全部client
- 在clients 列表中的client与subquery中返回的client比对。(IN)
SELECT *
FROM clients
WHERE client_id IN (
SELECT DISTINCT client_id
FROM invoices
)
- 通过 EXIST 实现
SELECT *
FROM clients c
WHERE EXISTS (
SELECT client_id
FROM invoices
WHERE client_id = c.client_id
) ## 每次有实现的数据就会返回,输出结果
## 一次遍历完成所有相等便会结束(相比会快很多)
练习
SELECT *
FROM products p
WHERE NOT EXISTS (
SELECT product_id
FROM order_items
WHERE product_id = p.product_id
)
## 挑选没有订单的产品
ps: 还是mySQL 不劝退渣渣hhh
网友评论