这是我正在尝试编写的查询:
SELECT I.*,
IF(MAX(B.`amount`) != 0, MAX(B.`amount`), I.`start`) AS `current_bid`,
`current_bid` * 1.05 AS `min_bid`
...
我收到错误“未知列'current_bid'”。我假设这是因为我刚刚在之前的行中创建了当前列。无论如何我可以让这个查询按我想要的方式工作吗?我想让它工作的一种方法是使用两个 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`
...
但这似乎非常低效。
current
另外,有没有一种方法可以在不计算MAX(B.amount)
两次的情况下分配?