显示两个单独查询的结果

时间:2013-08-16 07:57:41

标签: sql join mysqli

我必须一起显示来自两个不同查询的数据。

查询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`;

我想一起显示这两个查询的数据。

提前致谢。

4 个答案:

答案 0 :(得分:3)

根据你的需要你可以做这样的事情 每列:

  

从capture_captive中选择(选择计数(DISTINCT(昵称))users_got_a_card,其中'number_successed'> 0)为column1,    (从'capture_captive'中选择count(DISTINCT(nickname))users_shown_captive)作为column2

或每行:

  

从capture_captive中选择count(DISTINCT(昵称))users_got_a_card,其中number_successed> 0   UNION ALL
  从capture_captive

中选择count(DISTINCT(昵称))users_shown_captive

答案 1 :(得分: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 演示

答案 2 :(得分: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 

答案 3 :(得分:0)

这很简单。

首先,从第一个查询常规方式获取结果,并将其存储在名为$var1的变量中 接下来,从常规方式获取第二个查询的结果,并将其存储在名为$var2的变量中 最后,创建一个代码来展示它们:

echo $var1," ",$var2;

就这么简单。