2017-02-10 11 views
0

私は2つのMySQLテーブルからデータをフェッチし、それぞれを配列にプッシュしようとしています。 item_idと同じ列のitemとuserをテーブルにする必要があります。今、イムは、データの壁を取得し、この後2つのテーブルから選択し、データを持つオブジェクトを作成

var query = "SELECT * FROM items, users WHERE items.item_id=?"; query = connection.format(query,req.params.item_id);

でそれらのデータを要求してイム。このように:

{ 
{ user_id: 13213, 
    user_name: 'John', 
    item_id: 1337, 
    item_name: Leet stuff, 
    item_price: 13,37 
}, 
{ user_id: 12345, 
    user_name: 'Mike', 
    item_id: 1337, 
    item_name: Leet stuff, 
    item_price: 13,37 
} 

は、しかし、私はactualy必要なのはこれです:

{ 
users: [ 
    { user_id: 13213, 
    user_name: 'John' 
    }, 
    { user_id: 12345, 
    user_name: 'Mike' 
    } 
], 
    item_id: 1337, 
    item_name: Leet stuff, 
    item_price: 13,37 
} 

答えて

1

あなたは、単一のクエリでそれを行うことはできません。しかし、あなたは二つの異なるクエリを使用して出力を組み合わせることができ、例えば:

SELECT u.user_id, u.user_name 
FROM users u JOIN ITEMS i ON j.user_id = i.user_id 
WHERE i.item_id = ?; 

これは、あなたのユーザーのリストが表示されます。次に、以下のクエリを使用してアイテムの詳細を取得することができます。

SELECT item_id, item_name, item_price 
FROM items 
WHERE item_id = ? 

アプリケーションで必要な構造を構築することができます。

関連する問題