SQL Server-Sakila数据库

哈里H247

我目前正在使用MS的Sakila DB,其中包含电影/演员/租赁/客户等方面的数据。

地图:

萨基拉地图

我被要求制定查询条件以查找尚未租借特定电影的客户。

我已经能够找出我的代码来找到租借电影的客户,但是我无法集中精力找到没有租借电影的客户

我的代码如下:

SELECT DISTINCT C.customer_id, C.first_name, C.last_name
FROM customer AS C
JOIN RENTAL AS R ON C.customer_id = R.customer_id
JOIN inventory AS I ON R.inventory_id = I.inventory_id
JOIN film AS F ON I.film_id = F.film_id
WHERE F.title = 'ANGELS LIFE'

!= 'ANGELS LIFE'但是,我可以使用该列表返回出租过其他电影的每个人的清单(包括从其他购买中租赁了ANGELS LIFE的电影)。

我无法制定下一步。我考虑过使用Union然后删除重复项(count(*)> 1)吗?

感谢任何建议。

Yogesh Sharma

您可以使用dogregation:

SELECT C.customer_id, C.first_name, C.last_name
FROM customer AS C JOIN 
     RENTAL AS R 
     ON C.customer_id = R.customer_id JOIN 
     inventory AS I 
     ON R.inventory_id = I.inventory_id JOIN 
     film AS F 
     ON I.film_id = F.film_id
GROUP BY C.customer_id, C.first_name, C.last_name
HAVING SUM(CASE WHEN F.title = 'ANGELS LIFE' THEN 1 ELSE 0 END) = 0;

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章