2016-07-01 9 views
-2

mysqlクエリのどこかでスタックしました。私は2つのクエリを持っていますし、両方が結果を正常に返しています。1つのクエリで2つのmysqlクエリの数を比較します。

私の要件は、両方のクエリのカウントを比較できるように、1つのクエリで両方のクエリを使用することです。

第一クエリ

SELECT 
     user_profile.USERID, 
     user_profile.FIRSTNAME, 
     user_profile.LASTNAME, 
     lastvisit.lastvisit, 
     lastvisit.SOURCE as "RegistrationPlatform" 
    FROM user_profile 
    INNER JOIN lastvisit 
    ON user_profile.USERID =lastvisit.USERID 
    WHERE MONTH(lastvisit.lastvisit) = 5 AND YEAR(lastvisit.lastvisit) = 2016 
    AND lastvisit.SOURCE IN ('Online', 'MobileApp') 

第二のクエリ

SELECT 
     user_profile.USERID, 
     user_profile.FIRSTNAME, 
     user_profile.LASTNAME, 
     user_profile.registrationDate, 
     lastvisit.SOURCE as "RegistrationPlatform" 
    FROM user_profile 
    INNER JOIN lastvisit 
    ON user_profile.USERID =lastvisit.USERID 
    WHERE MONTH(user_profile.registrationDate) = 5 AND YEAR(user_profile.registrationDate) = 2016 
    AND lastvisit.SOURCE IN ('Online', 'MobileApp') 

出力はこの

Query UserCount 
Query1 100 
Query2 200 

任意の提案のようにしてくださいすべきですか?

おかげ

+0

が期待される結果 – Jens

+0

とクエリといくつかのサンプルデータを表示し、これを確認してくださいhttp://stackoverflow.com/help/how-to-ask –

+0

最初のUnionの(最初のブロックの)列名は、最終出力のために凍結されたものです – Drew

答えて

1

使用Count(*)Union

SELECT 
    'query1' as query 
    Count(*) as UserCount 
    FROM user_profile 
    INNER JOIN lastvisit 
    ON user_profile.USERID =lastvisit.USERID 
    WHERE MONTH(lastvisit.lastvisit) = 5 AND YEAR(lastvisit.lastvisit) = 2016 
    AND lastvisit.SOURCE IN ('Online', 'MobileApp') 
UNION 
SELECT 
    'query2' as query 
    Count(*) 
    FROM user_profile 
    INNER JOIN lastvisit 
    ON user_profile.USERID =lastvisit.USERID 
    WHERE MONTH(user_profile.registrationDate) = 5 AND YEAR(user_profile.registrationDate) = 2016 
    AND lastvisit.SOURCE IN ('Online', 'MobileApp') 
関連する問題