如文档中所写
sql标准要求HAVING必须仅引用GROUP BY子句中的列或聚合函数中使用的列。但是,MysqL支持对此行为的扩展,并允许HAVING引用SELECT列表中的列以及外部子查询中的列。
您必须在select子句中指定return_date和rental_date。
有两种选择:
SELECT DISTINCT
customer.first_name,
rental.return_date,
rental.rental_date
FROM
rental,
customer
WHERE
rental.customer_id = customer.customer_id
GROUP BY
rental.rental_id
HAVING
(
rental.return_date - rental.rental_date
) =(
...
要么
SELECT DISTINCT
customer.first_name,
(rental.return_date - rental.rental_date) as rental_duration
FROM
rental,
customer
WHERE
rental.customer_id = customer.customer_id
GROUP BY
rental.rental_id
HAVING
rental_duration =(
...
两者都应该工作正常。