我在執行一個查詢中的多個選擇時遇到問題。這是我做的:多個SELECT在一個查詢中
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)
我也試過如下:
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=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個按鍵的數組sToday','ConversationsToday'和'PermitsToday',每個人都包含一個從數據庫中選擇日期的數組。
UPDATE:
解決方法有不同的列是這樣的:
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
和你期待什麼呢? – Justin
我試圖得到的是一個包含3個鍵'VisitsToday','ConversationsToday'和'PermitsToday'的數組,每個數組包含一個從數據庫中選擇日期的數組。 – nielsv