2017-02-10 3 views
0

Ich versuche, Daten aus zwei MySQL-Tabellen zu holen und jedes in Array zu schieben. Ich habe Tabellenelement und Benutzer mit der gleichen Spalte - item_id. Im jetzt die Daten von ihnen mitWählen Sie aus zwei Tabellen und erstellen Sie ein Objekt mit Daten

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

Danach anfordert, im eine Wand von Daten zu bekommen. Wie folgt aus:

{ 
{ 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 
} 

Aber was ich brauche actualy ist dies:

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

Antwort

1

Sie nicht, dass in einer einzigen Abfrage tun. Sie können jedoch zwei unterschiedliche Abfragen verwenden und die Ausgabe kombinieren, z.B .:

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

Dies wird Ihnen die Liste der Benutzer geben. Sie können dann die folgende Abfrage verwenden, um die Positionsdetails abzurufen:

Sie können dann die erforderliche Struktur in Ihrer Anwendung erstellen.

Verwandte Themen