2017-02-21 2 views
0

Ich muss alle mehrere Tabellen UNION. Ich erstelle eine Abfrage über PHP und läuft erfolgreich ohne UNION ALL Tabellen. Aber wenn ich alle 2 Tabellen verbinde, scheint es, dass Abfrage endet nie in PHP-Seite auch ich getestet in pgAdmin mit dem gleichen Ergebnis. Ich erzeugte eine CSV-Datei als Ergebnis über die Shell, indem ich die Daten erhalte, die ich auswählen wollte, aber die Abfrage endet auch nie. Ich werde Ihre Kommentare schätzen. Danke im Voraus.UNION ALL in mehreren Tabellen

Dies ist die Abfrage, dass UNION alle mehrere Tabellen. Die Anzahl der Tabellen, die UNION ALL sein können, hängt von einem DateRangePicker ab. So gibt es eine Tabelle pro Tag, zum Beispiel: F_UCell_1_170123, F_UCell_1_170124, F_UCell_1_170125, F_UCell_1_170126, etc ...

SELECT 
to_date(T1.day::text,'YYYYMMDD'), 
T1.hour, 
cellname, 
Item67204837, Item73393830, ... , (199 columns listed in 7 tables listed below) 

FROM ( 

SELECT 
day, 
hour, 
Cellkey, 
Item67204837, Item67199736 
FROM omstar_1486079935913_xsau.F_UCell_1_17

UNION ALL 

SELECT 
day, 
hour, 
Cellkey, 
Item67204837, Item67199736 
FROM omstar_1486079935913_xsau.F_UCell_1_170124) 

AS T1 

INNER JOIN ( 

SELECT 
day, 
hour, 
Cellkey, 
Item67183903, Item67180586, Item67183900, Item67180589, Item67180588, Item67180590, Item67183901, Item67180587, Item67183913, Item67183912, Item67180585 
FROM omstar_1486079935913_xsau.F_UCell_2_17

UNION ALL 
SELECT 
day, 
hour, 
Cellkey, 
Item67183903, Item67180586, Item67183900, Item67180589, Item67180588, Item67180590, Item67183901, Item67180587, Item67183913, Item67183912, Item67180585 
FROM omstar_1486079935913_xsau.F_UCell_2_170124) 

AS T2 ON 
T1.day = T2.day AND 
T1.hour = T2.hour AND 
T1.Cellkey = T2.Cellkey 

INNER JOIN (

SELECT 
day, 
hour, 
Cellkey, 
Item73394021, Item67190477, Item73394022, Item67189750, Item67190411, Item67189749, Item73425007, Item67189756, Item67189757, Item73425013, Item73394018, Item67193405, Item67189754, Item67190476, Item67192661, Item67193406, Item67192660, Item73425009, Item67189755, Item73426857, Item67190412, Item73425012, Item73426856, Item73425008, Item73423107 
FROM omstar_1486079935913_xsau.F_UCell_3_17

UNION ALL 
SELECT day, hour, Cellkey, Item73394021, Item67190477, Item73394022, Item67189750, Item67190411, Item67189749, Item73425007, Item67189756, Item67189757, Item73425013, Item73394018, Item67193405, Item67189754, Item67190476, Item67192661, Item67193406, Item67192660, Item73425009, Item67189755, Item73426857, Item67190412, Item73425012, Item73426856, Item73425008, Item73423107 
FROM omstar_1486079935913_xsau.F_UCell_3_170124) 

AS T3 ON 
T1.day = T3.day AND 
T1.hour = T3.hour AND 
T1.Cellkey = T3.Cellkey 

INNER JOIN ( 

SELECT day, hour, Cellkey, Item67193538, Item67190406, Item67193542, Item67179830, Item67192612, Item67193613, Item67190506, Item67179858, Item67193611, Item73403809, Item73424888, Item67179825, Item67193543, Item67189494, Item67189496, Item67193539, Item67193540, Item67180083, Item67180081, Item67190457, Item73424884, Item67190840, Item73393835, Item67180078, Item67189568, Item67179967, Item73393837, Item67180077, Item67180079, Item67193537, Item67190505, Item67189557, Item73424885, Item67180067, Item73426209, Item73394298, Item73423519, Item67190461, Item67192613, Item67180082, Item67179777, Item67190409, Item67203416, Item67179780, Item67180074, Item67180069, Item67179930, Item67189572, Item67180076, Item67190841, Item67190408, Item73424887, Item67193541, Item73393836, Item67193612, Item73424889, Item67180080, Item67192610, Item67192611, Item67193614, Item67190407, Item67179827, Item73424886, Item67180068, Item67193536, Item67179864, Item67179922, Item67179925, Item67179778, Item67179926, Item67179781, Item67179927, Item67179826, Item67179921, Item67179928, Item67179924, Item67179828, Item67179923, Item67179779, 
FROM omstar_1486079935913_xsau.F_UCell_4_17

UNION ALL 

SELECT day, hour, Cellkey, Item67193538, Item67190406, Item67193542, Item67179830, Item67192612, Item67193613, Item67190506, Item67179858, Item67193611, Item73403809, Item73424888, Item67179825, Item67193543, Item67189494, Item67189496, Item67193539, Item67193540, Item67180083, Item67180081, Item67190457, Item73424884, Item67190840, Item73393835, Item67180078, Item67189568, Item67179967, Item73393837, Item67180077, Item67180079, Item67193537, Item67190505, Item67189557, Item73424885, Item67180067, Item73426209, Item73394298, Item73423519, Item67190461, Item67192613, Item67180082, Item67179777, Item67190409, Item67203416, Item67179780, Item67180074, Item67180069, Item67179930, Item67189572, Item67180076, Item67190841, Item67190408, Item73424887, Item67193541, Item73393836, Item67193612, Item73424889, Item67180080, Item67192610, Item67192611, Item67193614, Item67190407, Item67179827, Item73424886, Item67180068, Item67193536, Item67179864, Item67179922, Item67179925, Item67179778, Item67179926, Item67179781, Item67179927, Item67179826, Item67179921, Item67179928, Item67179924, Item67179828, Item67179923, Item67179779, Item67179782 
FROM omstar_1486079935913_xsau.F_UCell_4_170124) 

AS T4 ON 
T1.day = T4.day AND 
T1.hour = T4.hour AND 
T1.Cellkey = T4.Cellkey 

INNER JOIN ( 

SELECT 
day, 
hour, 
Cellkey, 
Item67199780, Item73423508, Item67190405, Item73423488, Item73423498, Item67179331, Item67199680, Item67199619, Item67179527, Item67179462, Item73423506, Item67190586, Item67204827, Item73423510, Item67192609, Item67190401, Item67179465, Item67180641, Item67179459, Item67179336, Item67179464, Item73423490, Item67193609, Item73423502, Item73410511, Item67179338, Item73423486, Item67190404, Item67179457, Item67193610, Item67179299, Item73423504, Item67199625, Item67199623, Item67179332, Item67199556, Item73423494, Item67199621, Item73423496, Item67199624, Item67179466, Item67179460, Item67180642, Item67190621, Item67179329, Item67199620, Item73423492, Item67204826, Item67179337, Item67199682, Item73425032, Item67179334, Item67199622, Item67180648, Item67192608, Item67179525, Item73410510, Item67179524 
FROM omstar_1486079935913_xsau.F_UCell_5_17

UNION ALL 

SELECT 
day, 
hour, 
Cellkey, 
Item67199780, Item73423508, Item67190405, Item73423488, Item73423498, Item67179331, Item67199680, Item67199619, Item67179527, Item67179462, Item73423506, Item67190586, Item67204827, Item73423510, Item67192609, Item67190401, Item67179465, Item67180641, Item67179459, Item67179336, Item67179464, Item73423490, Item67193609, Item73423502, Item73410511, Item67179338, Item73423486, Item67190404, Item67179457, Item67193610, Item67179299, Item73423504, Item67199625, Item67199623, Item67179332, Item67199556, Item73423494, Item67199621, Item73423496, Item67199624, Item67179466, Item67179460, Item67180642, Item67190621, Item67179329, Item67199620, Item73423492, Item67204826, Item67179337, Item67199682, Item73425032, Item67179334, Item67199622, Item67180648, Item67192608, Item67179525, Item73410510, Item67179524 
FROM omstar_1486079935913_xsau.F_UCell_5_170124) 

AS T5 ON 
T1.day = T5.day AND 
T1.hour = T5.hour AND 
T1.Cellkey = T5.Cellkey 

INNER JOIN ( 

SELECT 
day, 
hour, 
Cellkey, 
Item67180483, Item67180498, Item67180508, Item67192689, Item67180484, Item67180491, Item67180490, Item67180509, Item67180499 
FROM omstar_1486079935913_xsau.F_UCell_6_17

UNION ALL 

SELECT 
day, 
hour, 
Cellkey, 
Item67180483, Item67180498, Item67180508, Item67192689, Item67180484, Item67180491, Item67180490, Item67180509, Item67180499 
FROM omstar_1486079935913_xsau.F_UCell_6_170124) 

AS T6 ON 
T1.day = T6.day AND 
T1.hour = T6.hour AND 
T1.Cellkey = T6.Cellkey 

INNER JOIN ( 

SELECT 
day, 
hour, 
Cellkey, 
Item67189840, Item67192114, Item67203850, Item67192486, Item67190567, Item67192115, Item67192487, Item67190704, Item73403763, Item73393832, Item73403761, Item67190705, Item67202932, Item73393830 
FROM omstar_1486079935913_xsau.F_UCell_8_17

UNION ALL 

SELECT 
day, 
hour, 
Cellkey, 
Item67189840, Item67192114, Item67203850, Item67192486, Item67190567, Item67192115, Item67192487, Item67190704, Item73403763, Item73393832, Item73403761, Item67190705, Item67202932, Item73393830 
FROM omstar_1486079935913_xsau.F_UCell_8_170124) 

AS T7 ON 
T1.day = T7.day AND 
T1.hour = T7.hour AND 
T1.Cellkey = T7.Cellkey 

INNER JOIN 

omstar_1486079935913_xsau.d_ucell as Tn on T1.cellkey = Tn.cellkey 

WHERE Cellname IN ('U06CZPA') ORDER BY T1.day, T1.hour; 

Die Spalten verteilt sind, in F_UCell_1 oder F_UCell_2 oder ... oder F_UCell_6 oder F_UCell_8. Es fehlt F_UCell_7 (Gesamt 7 Tabellen, die durch INNER JOIN JOIN sind)

+0

Alle ItemXXXXXXXX Felder sind diejenigen, die ich in der ersten SELECT auswählen wollte. Sie sind in den Tabellen F_UCell verteilt, um die 203 auszuwählenden Spalten zu vervollständigen. – Beaver

+0

Sie haben kein Paar für 'Item67179782' in Ihrem Beispiel. Wenn es in Ihrer Abfrage dasselbe ist, dann haben Sie einen Fehler, weil 'UNION' in beiden vereinigten Tabellen die gleiche Anzahl von Spalten benötigt. "Es scheint, dass die Abfrage niemals auf der PHP-Seite endet" - wahrscheinlich kann Ihr PHP-Code das Problem klären. –

+0

Die PHP-Datei druckt die Abfrage, die ich eingefügt habe, alle Spalten stimmen für jede UNION ALL überein und es gibt keinen Fehler. Wenn die Zeile pg_query in PHP ausgeführt wird, endet sie mit dem Fortsetzen des Codes ... Ich habe keine PHP-Datei verfügbar. Ich werde so schnell wie möglich einfügen – Beaver

Antwort

0

@alex_edev, Im Test jetzt und es funktioniert mit nur einer Spalte in Ordnung, so ist es ein Leistungsproblem. Auch ich habe verschiedene Server (1 für Webseite und andere für DB-Server) im selben LAN. Das Ergebnis für alle Spalten beträgt etwa 150 mb, es könnte also ein Netzwerkproblem sein. @Ben H, das Design der Tabelle wurde zuvor entworfen haben eine bereits Daten, so neu zu entwerfen, ist die Tabelle keine Option.