解题思路:
看到两张表,一想到的是联表查询,但是在第二次阅读题目的时候发现可以用group by对customer_id进行分组,查询分组后的product_key与Product表中的product_key数量是否一致,如果一致则是购买了所有产品的顾客
SELECT customer_id
FROM Customer
GROUP BY customer_id
HAVING COUNT(DISTINCT(product_key)) = (SELECT COUNT(*) FROM Product)
这里需要注意的是:因为有外键约束所以上面语句是没问题的,但是如果没用外键约束,就需要判断顾客买的产品编号是否存在与产品表中。
外键约束:只能取一样的值或者NULL