2016-12-25 10 views
-1

4つの異なるクエリに対して4つのResultSetを取得しました。 これらの異なる属性の属性を持つJSONオブジェクトを作成すると、Datetime型を持つ各レコードのパラメータによって並べ替えられたResultSetがマージされます。データごとに異なるResultSetの結果を抽出する

この場合と仮定します。あなたが上記の見ることができるように、のResultSetが貴様抽出フィールド、抽出されたフィールドの数が異なる

ResultSet rs1 = from query ("select a, date from table order by date"); 
ResultSet rs2 = from query ("select b, c, date from table1 order by date"); 
ResultSet rs3 = from query ("select d, e, f, date from table2 order by date"); 
ResultSet rs4 = from query ("select g, h, i, l, date from table3 order by date"); 

は唯一の共通の情報が中に存在するフィールド「データ」であるetc..theすべての結果が最後のフィールド(クエリの最後のインデックス)として返されます。

それから私はこのようなJSON得るためになりますマイナーなインデックスを持つオブジェクトが最新であることを ノートでは、最後のインデックスを持つオブジェクトは、最も古いがあり

{"numberObjects":5, 
a1:"valuea1", 
data1:"valueDataa1", 
d2:"valued2", 
e2:"valuee2", 
f2:"valuef2", 
...} 

「データ」フィールドを検討していますこのことをする方法?私が知っている唯一の手順は非常に難しいので、私はあなたにこの事を動かすために、より速く、より簡単な方法を知っているかどうか聞いてきます。

+0

これは私にはっきりと分かりません。おそらくJSONの結果セットと望ましいデータの中の小さなデータの例を挙げたいでしょうか?仕様が明確であれば、それができると確信しています。 –

+0

自分で試しましたか?どんな研究をしますか? –

+0

各結果セットの中で最も古い行および/または最新の行だけを正確に理解していれば、目的の行のみを返すようにSQLを変更できますか? –

答えて

1

複合クエリを使用してすべてを一度に並べ替えることができます。これは、コンポーネントクエリが同じ数の列を返すことを必要とします。

SELECT a, NULL, NULL, NULL, date FROM tab1 
UNION ALL 
SELECT b, c, d, e, date FROM tab2 
UNION ALL 
SELECT ... 
ORDER BY date; 
関連する問題