[英]Column not found in Select statement inside select statement
嘗試一次從此查詢中選擇一行(例如,rank = 1)。 但是,它不起作用,因為“ unknown column'rank'。如果我將其更改為“ WHERE id = 1”,那么它就可以了,但是由於某種原因,它甚至不知道它是什么等級
SET @rownum=0;
SELECT @rownum := @rownum + 1 AS rank, id, client, date, time, pickupCity, pickupState
FROM (
SELECT r.id, CONCAT(c.fname, ' ', c.lname) as client, r.date,
LOWER(TIME_FORMAT(r.time, '%l:%i%p')) as time, r.pickupCity, r.pickupState
FROM request r
INNER JOIN client c ON r.client = c.id
INNER JOIN pickup p ON r.id = p.request
INNER JOIN driver d ON d.id = p.driver
WHERE date = '2018-04-18' AND d.id = 1
GROUP BY time
) AS tab
HAVING rank = 1;
在MySQL中,您可以使用HAVING
來做到這一點:
SELECT @rownum := @rownum + 1 AS rank, id, client, date, time, pickupCity, pickupState
FROM (SELECT r.id, CONCAT(c.fname, ' ', c.lname) as client, r.date,
LOWER(TIME_FORMAT(r.time, '%l:%i%p')) as time, r.pickupCity,
r.pickupState
FROM request r JOIN
client c
ON r.client = c.id JOIN
driver d
ON ?
pickup p
ON d.id = p.driver
WHERE date = '2018-04-18' AND d.id = 1
GROUP BY time
) t CROSS JOIN
(SELECT @rank := 0) params
HAVING rank = 1;
筆記:
??
用於缺少的JOIN
條件。 JOIN
語法。 您應該努力學習正確,顯式,標准的JOIN
語法。 @rank
; 您不需要單獨的聲明。 GROUP BY
沒有意義,因為SELECT
有許多未聚合的列。 如果我不得不推測,問題的根本原因是缺少JOIN
條件,而您為此付出了很多努力。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.