Php 打印出联合选择

Php 打印出联合选择,php,mysql,Php,Mysql,我有以下疑问: $query = mysql_query(" ( SELECT naam FROM users_social WHERE user_id = 1 ) UNION ( SELECT COUNT(DISTINCT DATE(datetime)) as days

我有以下疑问:

$query = mysql_query("  ( SELECT naam 
                          FROM users_social 
                          WHERE user_id = 1 )
                        UNION 
                        ( SELECT COUNT(DISTINCT DATE(datetime)) as days 
                          FROM users_social_invoer 
                          WHERE user_id = 1 )"
                    );
现在,我可以使用以下回显来回显查询的第一部分(“naam”):

echo mysql_fetch_row($row_query[0]);

然而,echo'ing$row_查询[1]并没有像我希望的那样打印出查询的第二部分(union select)。我实际上如何打印出查询的这一部分?谢谢

您需要加入
而不是
联盟

SELECT us.naam, count(DISTINCT DATE(usi.datetime)) as days
FROM users_social as us
JOIN users_social_invoer as usi
  ON us.user_id = usi.user_id
WHERE us.user_id = 1    
GROUP BY us.naam

您需要
JOIN
而不是
UNION

SELECT us.naam, count(DISTINCT DATE(usi.datetime)) as days
FROM users_social as us
JOIN users_social_invoer as usi
  ON us.user_id = usi.user_id
WHERE us.user_id = 1    
GROUP BY us.naam

不要使用
mysql.*
函数。自v5.5版(2013年6月)起,它们就被弃用,自v7.0版(2015年12月)起被删除。而是将or函数与and一起使用。看起来您想要加入,而不是联合。看起来您正在联合两种不同的数据类型。我认为这不应该被允许如果它工作,它将返回2行,每个选择一行。因此,您需要2次回迁,每次回迁都将在
$row\u query[0]
中提供数据,因为当我在phpmyadmin中运行它时,它会给我2行。。但是我只是不明白如何在php中回显第二行(所以是第二个fetch)。因为$row\u query[0]给了我'naam',那么为什么$row\u query[1]不给我第二个值呢?不要使用
mysql.*
函数。自v5.5版(2013年6月)起,它们就被弃用,自v7.0版(2015年12月)起被删除。而是将or函数与and一起使用。看起来您想要加入,而不是联合。看起来您正在联合两种不同的数据类型。我认为这不应该被允许如果它工作,它将返回2行,每个选择一行。因此,您需要2次回迁,每次回迁都将在
$row\u query[0]
中提供数据,因为当我在phpmyadmin中运行它时,它会给我2行。。但是我只是不明白如何在php中回显第二行(所以是第二个fetch)。因为$row_query[0]给了我'naam',那么为什么$row_query[1]不给我第二个值呢?如果你不介意的话,再问一个问题。实际上,我想按count(DISTINCT DATE(usi.datetime))的值排序。这可能吗?在末尾添加
orderbycount(DISTINCT DATE(usi.datetime))DESC
。如果您不介意的话,再问一个问题。实际上,我想按count(DISTINCT DATE(usi.datetime))的值排序。这可能吗?在末尾添加按计数排序(不同日期(usi.datetime))说明。