在mysql中加入3个字段

在mysql中加入3个字段,mysql,sql,union,Mysql,Sql,Union,我有一个使用uin的sql查询 SELECT Sum(scores_ofexpert.score) FROM scores_ofexpert WHERE scores_ofexpert.user_id = '30' AND scores_ofexpert.score > '0' UNION SELECT Sum(scores_ofexpert.score) FROM scores_ofexpert WHERE scores_ofexpert.user

我有一个使用uin的sql查询

    SELECT Sum(scores_ofexpert.score) FROM scores_ofexpert
    WHERE scores_ofexpert.user_id = '30' AND scores_ofexpert.score > '0'
    UNION
    SELECT Sum(scores_ofexpert.score) FROM scores_ofexpert
    WHERE scores_ofexpert.user_id = '30' AND scores_ofexpert.score < '0'
    UNION
    SELECT Sum(scores_ofexpert.score) FROM scores_ofexpert
    WHERE scores_ofexpert.user_id = '30'
但我希望结果是这样的

 -------------------------------------
 |n_sum      |p_sum      |sum        |
 -------------------------------------    
 |-10        |30         |20         |
 -------------------------------------
如何做到这一点?

您可以使用CASE

您可以使用这个用例

您可以使用这个用例

您可以使用这个用例

这是另一个答案

SELECT
( SELECT Sum(scores_ofexpert.score)  
    FROM scores_ofexpert  
    WHERE   
    scores_ofexpert.user_id = '30' AND 
    scores_ofexpert.score > '0'
) p_sum,
(       SELECT
        Sum(scores_ofexpert.score)
        FROM
        scores_ofexpert
        WHERE
        scores_ofexpert.user_id = '30' AND
        scores_ofexpert.score < '0'
) n_sum,
(       SELECT
        Sum(scores_ofexpert.score)
        FROM
        scores_ofexpert
        WHERE
        scores_ofexpert.user_id = '30'
) sum_all
这是另一个答案

SELECT
( SELECT Sum(scores_ofexpert.score)  
    FROM scores_ofexpert  
    WHERE   
    scores_ofexpert.user_id = '30' AND 
    scores_ofexpert.score > '0'
) p_sum,
(       SELECT
        Sum(scores_ofexpert.score)
        FROM
        scores_ofexpert
        WHERE
        scores_ofexpert.user_id = '30' AND
        scores_ofexpert.score < '0'
) n_sum,
(       SELECT
        Sum(scores_ofexpert.score)
        FROM
        scores_ofexpert
        WHERE
        scores_ofexpert.user_id = '30'
) sum_all
这是另一个答案

SELECT
( SELECT Sum(scores_ofexpert.score)  
    FROM scores_ofexpert  
    WHERE   
    scores_ofexpert.user_id = '30' AND 
    scores_ofexpert.score > '0'
) p_sum,
(       SELECT
        Sum(scores_ofexpert.score)
        FROM
        scores_ofexpert
        WHERE
        scores_ofexpert.user_id = '30' AND
        scores_ofexpert.score < '0'
) n_sum,
(       SELECT
        Sum(scores_ofexpert.score)
        FROM
        scores_ofexpert
        WHERE
        scores_ofexpert.user_id = '30'
) sum_all
这是另一个答案

SELECT
( SELECT Sum(scores_ofexpert.score)  
    FROM scores_ofexpert  
    WHERE   
    scores_ofexpert.user_id = '30' AND 
    scores_ofexpert.score > '0'
) p_sum,
(       SELECT
        Sum(scores_ofexpert.score)
        FROM
        scores_ofexpert
        WHERE
        scores_ofexpert.user_id = '30' AND
        scores_ofexpert.score < '0'
) n_sum,
(       SELECT
        Sum(scores_ofexpert.score)
        FROM
        scores_ofexpert
        WHERE
        scores_ofexpert.user_id = '30'
) sum_all

您需要学习何时使用UNION太快提示:它比普通UNION快。您需要学习何时使用UNION太快提示:它比普通UNION快。您需要学习何时使用UNION太快提示:它比普通UNION快。您需要学习何时使用UNION太快提示:它比普通UNION快。它对sql Server很有用对sql server有用它对sql server有用它对sql server有用