MySQL 从 Count Null 中减去

MySQL subtract from Count Null

我有一个电影租赁数据库,我必须在其中计算我有多少给定电影可用。 我有 3 个表:

a) “电影” -Id_MoviePK, -姓名, -Copies_num

b) “客户” -Id_ClientPK, -Client_Name

c)“租金” Movie_Id PK FK, Client_ID PK FK, Rental_Date, Movie_return_date

所以我想,如果 movie_return_date 为 null,则表示已租用 1 份,这意味着我有 (Copies_num - COUNT(NULLS of movie return date) 但我不太清楚如何做这样的 SELECT 查询

SELECT Distinct M.Title, M.Copies_num as 'max_num',M.Copies_num - COUNT(IFNULL(R.Movie_return_date , NULL)) as avalible FROM rentals R LEFT JOIN Movies M ON M.Id_Movie = R.Movie_ID GROUP BY M.Copies_num, M.Title;

这有点管用,但它从错误的电影中提取了子轨,那部电影没有任何空值

如果我没有正确理解你的问题,你可以试试这样:

SELECT Distinct M.Title, M.Copies_num as 'max_num', M.copies_num- 
COUNT(rental_date) AS available
FROM rental R right JOIN Movies M ON M.Id_Movie = R.Movie_ID 
WHERE movie_return_date is null
GROUP BY M.Copies_num, M.Title;