2016-08-01 10 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

関連する問題