2016-08-01 58 views
0

我正在嘗試獲得所有產品的總競價。我只想顯示大於或等於10的總出價。以下是我的查詢。如何在子查詢中獲取結果值並將其用於使用MySQL進行比較?

SELECT 
p.id AS id, 
pd.product_name AS product_name, 
p.cover_image AS cover_image, 
p.starting_price AS starting_price, 
p.final_price AS final_price, 
p.datetime_end AS datetime_end, 
(SELECT COUNT(id) FROM auction_product_bidding AS pd WHERE pd.product_id = p.id) AS total_bid 
FROM auction_product AS p 
LEFT JOIN auction_product_detail AS pd 
ON(p.id = pd.product_id) 
WHERE p.`status` = 0 
AND total_bid >= 10 

而且我的錯誤是: unknown column total bid... 我能實現我想用一個查詢或我應該在PHP端做這個過程是什麼?

這就是所有人,我希望你能幫助我。謝謝。

回答

2

在大多數數據庫中,您將使用子查詢 - 因爲列別名無法在where子句中識別。 MySQL爲此擴展了HAVING子句,因此您可以編寫:

SELECT p.id, pd.product_name, p.cover_image, p.starting_price,  
     p.final_price, p.datetime_end, 
     (SELECT COUNT(id) FROM auction_product_bidding pd WHERE pd.product_id = p.id) as total_bid 
FROM auction_product p LEFT JOIN 
    auction_product_detail pd 
    ON p.id = pd.product_id 
WHERE p.status = 0 
HAVING total_bid >= 10 
+0

感謝您的簡短和明確的解釋。它現在有效。我不記得那是'HAVING'。 – Jerielle

相關問題