2013-08-16 89 views
0

我必須從兩個不同查詢一起顯示數據。顯示來自兩個單獨查詢的結果在一起

查詢1:

select count(DISTINCT(nickname)) users_got_a_card from capture_captive where `number_successed`>0; 

查詢2:

select count(DISTINCT(`nickname`)) users_shown_captive from `capture_captive`; 

我想從這兩個查詢的數據顯示在一起。

在此先感謝。

+0

合起來 - 即值的總和?還是兩排? –

+1

你不能使用UNION運算符嗎? 「UNION運算符用於組合兩個或更多SELECT語句的結果集。」 – Zakerias

回答

2

如果你希望他們作爲一個單行的兩列,你可以嘗試

SELECT 
(
    SELECT COUNT(DISTINCT(nickname)) 
     FROM capture_captive 
     WHERE `number_successed`> 0 
) users_got_a_card, 
(
    SELECT COUNT(DISTINCT(`nickname`)) 
     FROM `capture_captive` 
) users_shown_captive 

SELECT users_got_a_card, users_shown_capt 
    FROM 
(
    SELECT COUNT(DISTINCT(nickname)) users_got_a_card 
     FROM capture_captive 
     WHERE `number_successed`> 0 
) a CROSS JOIN 
(
    SELECT COUNT(DISTINCT(`nickname`)) users_shown_capt 
     FROM `capture_captive` 
) b 

SELECT COUNT(DISTINCT(IF(`number_successed` > 0, `nickname`, NULL))) users_got_a_card, 
     COUNT(DISTINCT(`nickname`)) users_shown_capt 
    FROM `capture_captive` 

這裏是SQLFiddle演示

3

取決於你需要,你可以做些事情是這樣
每列的內容:

選擇(從capture_captive SELECT COUNT(DISTINCT(暱稱))users_got_a_card其中 'number_successed'> 0)作爲列1, (選擇計數(DISTINCT(nickname))從 'capture_captive' users_shown_captive)作爲列2

或每行:

選擇COUN噸(DISTINCT(暱稱))從capture_captive users_got_a_card其中number_successed> 0 UNION ALL
SELECT COUNT(DISTINCT(暱稱))從capture_captive

0

users_shown_captive這很簡單。

首先,從第一個查詢常用方法得到的結果,並將其存儲在一個名爲$var1變量,
接下來,從第二個查詢常用方法得到的結果,並將其存儲在一個名爲$var2變量,
最後,創建一個代碼將它們展示在一起:

echo $var1," ",$var2; 

就這麼簡單。

1
select count(DISTINCT(case when `number_successed`>0 
      then `nickname` end)) users_got_a_card, 
     count(DISTINCT(nickname)) users_shown_captive 
from capture_captive 
相關問題