これが私が書き込もうとしているクエリです:
SELECT I.*,
IF(MAX(B.`amount`) != 0, MAX(B.`amount`), I.`start`) AS `current_bid`,
`current_bid` * 1.05 AS `min_bid`
...
「不明な列'current_bid'」というエラーが発生します。前の行に現在の列を作成したばかりだからだと思います。とにかく、このクエリを希望どおりに機能させることができますか?それを機能させる1つの方法は、次のように、基本的に同じことを言う2つのifステートメントを使用することだと思います。
SELECT I.*,
IF(MAX(B.`amount`) != 0, MAX(B.`amount`), I.`start`) AS `current_bid`,
IF(MAX(B.`amount`) != 0, MAX(B.`amount`) * 1.05, I.`start` * 1.05) AS `min_id`
...
しかし、それはひどく非効率的なようです。
また、 2回current
計算せずに割り当てる方法はありますか?MAX(B.amount)