2017-02-21 5 views
0

複数のテーブルをUNIONする必要があります。私はPHPを介してクエリを作成し、UNION ALLテーブルなしで正常に実行されます。しかし、私はすべての2つのテーブルを結合するとき、それは同じ結果でpgAdminでテストしたPHPページで決して終了しないようです。私は選択したかったデータをシェルから取得してCSVファイルを生成しましたが、クエリーも終了しません。私はあなたのコメントを感謝します。前もって感謝します。複数のテーブル内のUNION ALL

これは、UNION ALLの複数のテーブルのクエリです。 UNION ALLになるテーブルの量は、DateRangePickerに依存します。一日あたりのテーブルには、例えば、そこにあるので:F_UCell_1_170123、F_UCell_1_170124、F_UCell_1_170125、F_UCell_1_170126、等...

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; 

列がF_UCell_1またはF_UCell_2か...またはF_UCell_6またはF_UCell_8で配布されています。 それはF_UCell_7

+0

すべてのItemXXXXXXXXフィールドは、最初のSELECTで選択したいフィールドです。それらはテーブルF_UCellに分散され、選択する203の列を完成させます。 – Beaver

+0

あなたの例では 'Item67179782'のペアはありません。あなたのクエリで同じであれば、 'UNION'は両方の結合テーブルに同じ数のカラムを持つ必要があるため、エラーが発生します。 'それはクエリがPHPページで終わることはないようです' - おそらくあなたのPHPコードは問題を明確にすることができます。 –

+0

PHPファイルは貼り付けたクエリを出力します。すべての列がすべてのUNION ALLに一致し、エラーはありません。 pg_query行がphpで実行されると、コードは続行されません... PHPファイルは利用できません。私はできるだけ早く貼り付けます – Beaver

答えて

0

@alex_edev、イム・テストを(INNER JOINにより、JOINされている合計7つのテーブル)不足していると、それだけで1列に正常に動作しますので、パフォーマンスの問題です。また、私は同じLAN内の異なるサーバー(Webページ用とDBサーバー用の1つ)を持っています。すべての列の結果は約150 MBであるため、ネットワークの問題になる可能性があります。 @Ben H、テーブルのデザインは、すでにデータがあるので、テーブルを再設計する前に設計されていたので、オプションではありません。

関連する問題