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个不同的查询来将它们分开?