Mysql 一个查询中有多个SELECT

Mysql 一个查询中有多个SELECT,mysql,sql,Mysql,Sql,在一个查询中执行多个选择时遇到问题。我就是这么做的: SELECT 1 AS VisitsToday, `Datum Bezoek 1` FROM `psttodo-uit` WHERE CAST(`Datum Bezoek 1` AS DATE) = CURRENT_DATE AND PB = 1 UNION SELECT 2 AS ConversationsToday, `Datum Bezoek 1` FROM `psttodo-uit` WHERE CAST(`Datum Bezoek

在一个查询中执行多个选择时遇到问题。我就是这么做的:

SELECT 1 AS VisitsToday, `Datum Bezoek 1` FROM `psttodo-uit` WHERE CAST(`Datum Bezoek 1` AS DATE) = CURRENT_DATE AND PB = 1
UNION
SELECT 2 AS ConversationsToday, `Datum Bezoek 1` FROM `psttodo-uit` WHERE CAST(`Datum Bezoek 1` AS DATE) = CURRENT_DATE AND PG = 1
UNION
SELECT 3 AS PermitsToday, `Datum Bezoek 1` FROM `psttodo-uit` WHERE CAST(`Datum Bezoek 1` AS DATE) = CURRENT_DATE AND PA = 1;
但我得到的结果是:

array (size=15)
      0 => 
        array (size=2)
          'VisitsToday' => string '1' (length=1)
          'Datum Bezoek 1' => string '2014-02-28 08:25:34' (length=19)
      1 => 
        array (size=2)
          'VisitsToday' => string '1' (length=1)
          'Datum Bezoek 1' => string '2014-02-28 08:55:34' (length=19)
      2 => 
        array (size=2)
          'VisitsToday' => string '1' (length=1)
          'Datum Bezoek 1' => string '2014-02-28 12:22:34' (length=19)
      3 => 
        array (size=2)
          'VisitsToday' => string '1' (length=1)
          'Datum Bezoek 1' => string '2014-02-28 12:28:34' (length=19)
      4 => 
        array (size=2)
          'VisitsToday' => string '1' (length=1)
          'Datum Bezoek 1' => string '2014-02-28 16:13:34' (length=19)
      5 => 
        array (size=2)
          'VisitsToday' => string '2' (length=1)
          'Datum Bezoek 1' => string '2014-02-28 08:25:34' (length=19)
      6 => 
        array (size=2)
          'VisitsToday' => string '2' (length=1)
          'Datum Bezoek 1' => string '2014-02-28 08:55:34' (length=19)
      7 => 
        array (size=2)
          'VisitsToday' => string '2' (length=1)
          'Datum Bezoek 1' => string '2014-02-28 12:22:34' (length=19)
      8 => 
        array (size=2)
          'VisitsToday' => string '2' (length=1)
          'Datum Bezoek 1' => string '2014-02-28 12:28:34' (length=19)
      9 => 
        array (size=2)
          'VisitsToday' => string '2' (length=1)
          'Datum Bezoek 1' => string '2014-02-28 16:13:34' (length=19)
      10 => 
        array (size=2)
          'VisitsToday' => string '3' (length=1)
          'Datum Bezoek 1' => string '2014-02-28 08:25:34' (length=19)
      11 => 
        array (size=2)
          'VisitsToday' => string '3' (length=1)
          'Datum Bezoek 1' => string '2014-02-28 08:55:34' (length=19)
      12 => 
        array (size=2)
          'VisitsToday' => string '3' (length=1)
          'Datum Bezoek 1' => string '2014-02-28 12:22:34' (length=19)
      13 => 
        array (size=2)
          'VisitsToday' => string '3' (length=1)
          'Datum Bezoek 1' => string '2014-02-28 12:28:34' (length=19)
      14 => 
        array (size=2)
          'VisitsToday' => string '3' (length=1)
          'Datum Bezoek 1' => string '2014-02-28 16:13:34' (length=19)
array (size=5)
   0 => 
     array (size=1)
       'VisitsToday' => string '2014-02-28 08:25:34' (length=19)
   1 => 
     array (size=1)
       'VisitsToday' => string '2014-02-28 08:55:34' (length=19)
   2 => 
     array (size=1)
       'VisitsToday' => string '2014-02-28 12:22:34' (length=19)
   3 => 
     array (size=1)
       'VisitsToday' => string '2014-02-28 12:28:34' (length=19)
   4 => 
     array (size=1)
       'VisitsToday' => string '2014-02-28 16:13:34' (length=19)
我还尝试了以下方法:

SELECT `Datum Bezoek 1` AS VisitsToday FROM `psttodo-uit` WHERE CAST(`Datum Bezoek 1` AS DATE) = CURRENT_DATE AND PB = 1
UNION
SELECT `Datum Bezoek 1` AS ConversationsToday FROM `psttodo-uit` WHERE CAST(`Datum Bezoek 1` AS DATE) = CURRENT_DATE AND PG = 1
UNION
SELECT `Datum Bezoek 1` AS PermitsToday FROM `psttodo-uit` WHERE CAST(`Datum Bezoek 1` AS DATE) = CURRENT_DATE AND PA = 1
但我得到了这个结果:

array (size=15)
      0 => 
        array (size=2)
          'VisitsToday' => string '1' (length=1)
          'Datum Bezoek 1' => string '2014-02-28 08:25:34' (length=19)
      1 => 
        array (size=2)
          'VisitsToday' => string '1' (length=1)
          'Datum Bezoek 1' => string '2014-02-28 08:55:34' (length=19)
      2 => 
        array (size=2)
          'VisitsToday' => string '1' (length=1)
          'Datum Bezoek 1' => string '2014-02-28 12:22:34' (length=19)
      3 => 
        array (size=2)
          'VisitsToday' => string '1' (length=1)
          'Datum Bezoek 1' => string '2014-02-28 12:28:34' (length=19)
      4 => 
        array (size=2)
          'VisitsToday' => string '1' (length=1)
          'Datum Bezoek 1' => string '2014-02-28 16:13:34' (length=19)
      5 => 
        array (size=2)
          'VisitsToday' => string '2' (length=1)
          'Datum Bezoek 1' => string '2014-02-28 08:25:34' (length=19)
      6 => 
        array (size=2)
          'VisitsToday' => string '2' (length=1)
          'Datum Bezoek 1' => string '2014-02-28 08:55:34' (length=19)
      7 => 
        array (size=2)
          'VisitsToday' => string '2' (length=1)
          'Datum Bezoek 1' => string '2014-02-28 12:22:34' (length=19)
      8 => 
        array (size=2)
          'VisitsToday' => string '2' (length=1)
          'Datum Bezoek 1' => string '2014-02-28 12:28:34' (length=19)
      9 => 
        array (size=2)
          'VisitsToday' => string '2' (length=1)
          'Datum Bezoek 1' => string '2014-02-28 16:13:34' (length=19)
      10 => 
        array (size=2)
          'VisitsToday' => string '3' (length=1)
          'Datum Bezoek 1' => string '2014-02-28 08:25:34' (length=19)
      11 => 
        array (size=2)
          'VisitsToday' => string '3' (length=1)
          'Datum Bezoek 1' => string '2014-02-28 08:55:34' (length=19)
      12 => 
        array (size=2)
          'VisitsToday' => string '3' (length=1)
          'Datum Bezoek 1' => string '2014-02-28 12:22:34' (length=19)
      13 => 
        array (size=2)
          'VisitsToday' => string '3' (length=1)
          'Datum Bezoek 1' => string '2014-02-28 12:28:34' (length=19)
      14 => 
        array (size=2)
          'VisitsToday' => string '3' (length=1)
          'Datum Bezoek 1' => string '2014-02-28 16:13:34' (length=19)
array (size=5)
   0 => 
     array (size=1)
       'VisitsToday' => string '2014-02-28 08:25:34' (length=19)
   1 => 
     array (size=1)
       'VisitsToday' => string '2014-02-28 08:55:34' (length=19)
   2 => 
     array (size=1)
       'VisitsToday' => string '2014-02-28 12:22:34' (length=19)
   3 => 
     array (size=1)
       'VisitsToday' => string '2014-02-28 12:28:34' (length=19)
   4 => 
     array (size=1)
       'VisitsToday' => string '2014-02-28 16:13:34' (length=19)

我试图得到的是一个包含3个键“VisitsToday”、“ConversationsToday”和“PermitsToday”的数组,每个键都包含一个从数据库中选择日期的数组

更新: 使用不同列的解决方法如下:

SELECT 1 AS VisitsToday, NULL AS ConversationsToday, NULL AS PermitsToday
FROM `psttodo-uit` WHERE CAST(`Datum Bezoek 1` AS DATE) = CURRENT_DATE AND PB = 1)
UNION
SELECT NULL, 2 AS ConversationsToday, NULL
FROM `psttodo-uit` WHERE CAST(`Datum Bezoek 1` AS DATE) = CURRENT_DATE AND PG = 1)
UNION
SELECT NULL, NULL, 3 AS PermitsToday
FROM `psttodo-uit` WHERE CAST(`Datum Bezoek 1` AS DATE) = CURRENT_DATE AND PA = 1)
Syntax error or access violation: 1064 You have an error in your SQL syntax; check the    manual that corresponds to your MySQL server version for the right syntax to use near ')
UNION SELECT NULL, 2 AS ConversationsToday, NU' at line 2
SELECT 1 AS VisitsToday, NULL AS ConversationsToday, NULL AS PermitsToday, ... FROM ... UNION SELECT NULL , 2 , NULL , ... FROM ... ... UNION SELECT NULL , NULL , 3 , ... FROM ... ..; 但是我得到了一个类似这样的错误:

SELECT 1 AS VisitsToday, NULL AS ConversationsToday, NULL AS PermitsToday
FROM `psttodo-uit` WHERE CAST(`Datum Bezoek 1` AS DATE) = CURRENT_DATE AND PB = 1)
UNION
SELECT NULL, 2 AS ConversationsToday, NULL
FROM `psttodo-uit` WHERE CAST(`Datum Bezoek 1` AS DATE) = CURRENT_DATE AND PG = 1)
UNION
SELECT NULL, NULL, 3 AS PermitsToday
FROM `psttodo-uit` WHERE CAST(`Datum Bezoek 1` AS DATE) = CURRENT_DATE AND PA = 1)
Syntax error or access violation: 1064 You have an error in your SQL syntax; check the    manual that corresponds to your MySQL server version for the right syntax to use near ')
UNION SELECT NULL, 2 AS ConversationsToday, NU' at line 2
SELECT 1 AS VisitsToday, NULL AS ConversationsToday, NULL AS PermitsToday, ... FROM ... UNION SELECT NULL , 2 , NULL , ... FROM ... ... UNION SELECT NULL , NULL , 3 , ... FROM ... ..;
您试图为一列指定多个名称-这是根本无法做到的。使用union,将在第一个select中指定列名。

可能的解决方法是添加不同的列,因此如下所示:

SELECT 1 AS VisitsToday, NULL AS ConversationsToday, NULL AS PermitsToday
FROM `psttodo-uit` WHERE CAST(`Datum Bezoek 1` AS DATE) = CURRENT_DATE AND PB = 1)
UNION
SELECT NULL, 2 AS ConversationsToday, NULL
FROM `psttodo-uit` WHERE CAST(`Datum Bezoek 1` AS DATE) = CURRENT_DATE AND PG = 1)
UNION
SELECT NULL, NULL, 3 AS PermitsToday
FROM `psttodo-uit` WHERE CAST(`Datum Bezoek 1` AS DATE) = CURRENT_DATE AND PA = 1)
Syntax error or access violation: 1064 You have an error in your SQL syntax; check the    manual that corresponds to your MySQL server version for the right syntax to use near ')
UNION SELECT NULL, 2 AS ConversationsToday, NU' at line 2
SELECT 1 AS VisitsToday, NULL AS ConversationsToday, NULL AS PermitsToday, ... FROM ... UNION SELECT NULL , 2 , NULL , ... FROM ... ... UNION SELECT NULL , NULL , 3 , ... FROM ... ..;
你期望的是什么?我尝试得到的是一个包含3个键“VisitsToday”、“ConversationsToday”和“PermitsToday”的数组,每个键都包含一个从数据库中选择日期的数组。这应该是一个注释!所以我不能在一个查询中进行多个选择并将它们分开?@nielsv没有办法为同一列分配不同的别名,但你可以换一种方式。我会在一分钟内更新答案。如果你能详细解释你的答案,那就太好了。这里的很多人都会觉得这很有帮助。。否则你的单个语句应该是一个注释。所以我需要做3个不同的查询来将它们分开?