+-
mysql – 从相同的表中选择相同的数据,条件为不同的列
我认为最好先向你展示他的查询:

    SELECT 
    Positive.Amount AS PosAmount, 
    Negative.Amount AS NegAmount, 
    booking.Correction
FROM (booking)
LEFT JOIN ( SELECT ID, Amount FROM booking WHERE Amount < 0 ) 
    AS Negative ON booking.ID = Negative.ID
LEFT JOIN ( SELECT ID, Amount FROM booking WHERE Amount > 0 ) 
    AS Positive ON booking.ID = Positive.ID

我想在这里实现的是以下内容.我希望每个预订的金额取决于它在不同列中是正数还是负数.这可能是另一种更便宜的方式吗?我的意思是加入一张桌子本身不是最好的方法,可以吗?

该表看起来像:

enter image description here

而期望的结果是这样的:

enter image description here

提前致谢!

最佳答案
你只需要在这里使用CASE语句.不需要子查询和自连接:

SELECT
    CASE WHEN amount > 0 THEN amount END as posAmount,
    CASE WHEN amount < 0 THEN amount END as negAmount,
    correction
FROM booking
点击查看更多相关文章

转载注明原文:mysql – 从相同的表中选择相同的数据,条件为不同的列 - 乐贴网