gpt4 book ai didi

MySQL-尝试按不同表中的两个不同列进行排序

转载 作者:行者123 更新时间:2023-11-29 12:19:47 25 4
gpt4 key购买 nike

嘿,我在想出要执行的操作的 SQL 时遇到了一些麻烦。

我有一个表列表,其中有一个 start_price 字段和一个事件字段。我只想提取处于事件状态的列表(1)。

我想按当前价格订购这些商品。我的列表或出价表中都没有当前价格字段。因此,如果listing_id位于bids表中,我想将与bids表中匹配的listing_id对应的金额字段中的最大值分配给当前价格,否则应将listings中的start_price分配给当前价格。

这是我迄今为止想到的。我一直在研究不同的东西,但无法想出正确的语法。

SELECT DISTINCT * FROM listings l  LEFT JOIN bids b ON l.id = b.listing_id WHERE l.active = 1 ORDER BY l.start_price

最佳答案

有多种方法可以进行计算。我认为对您来说关键的想法是您可以在 order by 子句中使用列别名。

以下使用相关子查询进行计算,如果没有匹配则使用 coalesce():

select l.*,
coalesce( (select max(b.price)
from bids b
where b.listing_id = l.listing_id
), l.start_price
) as current_price
where l.active = 1
from listings l
order by current_price;

注意:我有点担心使用出价中的最高价格,而不是最新价格。是否有可能撤回出价,但该行仍保留在表中?

关于MySQL-尝试按不同表中的两个不同列进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29199584/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com