0
でグループごとに1つのレコードを取得します。例についてはNode.jsのはORACLEDB - 私は多くの関係1で、2つのテーブルを結合するためにNode.jsのとORACLEDBを使用していアレー
:
RECORDS Table:
RECORD_ID COMMENTS
1000 Comment 1
1001 Comment 2
DEVICE表:
DEVICE_ID REF_RECORD_ID DEVICE_NAME
2000 1000 iPhone 6
2001 1000 iPhone 7
2003 1001 Samsung Galaxy S6
2004 1001 Samsung Galaxy S7
私は
SELECT A.RECORD_ID, A.COMMENT, B.DEVICE_ID, B.DEVICE_NAME FROM RECORDS A, DEVICES B WHERE A.RECORD_ID = B.REF_RECORD_ID;
現在の結果使用して参加取り出すことができます。
[{
RECORD_ID: 1000, COMMENT: "Comment 1", DEVICE_ID: 2000, DEVICE_NAME: "iPhone 6"
},
{
RECORD_ID: 1000, COMMENT: "Comment 1", DEVICE_ID: 2001, DEVICE_NAME: "iPhone 7"
},
{
RECORD_ID: 1001, COMMENT: "Comment 2", DEVICE_ID: 2003, DEVICE_NAME: "Samsung Galaxy S6"
},
{
RECORD_ID: 1001, COMMENT: "Comment 2", DEVICE_ID: 2004, DEVICE_NAME: "Samsung Galaxy S7"
}]
しかし、以下に示すように、私は結果を希望:
[{
RECORD_ID: 1000, COMMENT: "Comment 1",
DEVICES: [{ DEVICE_ID: 2000, DEVICE_NAME: "iPhone 6" }, { DEVICE_ID: 2001, DEVICE_NAME: "iPhone 7" }]
},
{
RECORD_ID: 1001, COMMENT: "Comment 2",
DEVICES: [{ DEVICE_ID: 2003, DEVICE_NAME: "Samsung Galaxy S6" }, { DEVICE_ID: 2004, DEVICE_NAME: "Samsung Galaxy S7" }]
}]
ではなく、オブジェクトの配列をループして、重複したRECORD_IDのを見つけると、サブアイテムをプッシュする配列を作成するよりも、これを行うには良い方法はありますか?