Heim > Fragen und Antworten > Hauptteil
Ich habe zwei Tische
Held
id | Name | universe_id |
---|---|---|
12 | Tag | 1 |
99 | Glutenscheiben | 1 |
Universum
id | Name |
---|---|
1 | Andromeda |
2 | Aurora |
So verwenden Sie den Universe-Namen anstelle von Universe-ID, um Tabellendaten zurückzugeben. Leider verfüge ich nicht über genügend SQL-Erfahrung, um diese einfache Aufgabe zu bewältigen. Ich habe in SO einige Antworten gelesen, die die Verwendung von JOIN erfordern.
Ich versuche so etwas zu machen.
exports.getHero = (req, res) => {
const sql = "SELECT * FROM `hero` WHERE `id`='" + req.params.id + "' JOIN `universe` WHERE `id`=`universe_id` ON `hero.universe_id`=`universe.id`";
db.query(sql, (error, results) => {
if (error) {
console.log(error);
} else {
response.returnSingleValue(results, res);
}
});
};
Aber das funktioniert nicht. hero
Das erwartete Ergebnis ist:
[{ id: 12, name: Mark, universe_id: Andromeda }, { id: 99, name: Glume, universe_id: Andromeda }]
P粉4329068802024-04-01 15:30:34
您可以在 id
值上将 universe
联接到 hero
,然后有意选择您希望在输出中看到的初始 SELECT
子句中的字段:
SELECT `hero`.`id`, `hero`.`name`, `universe`.`name` FROM `hero` JOIN `universe` ON `hero`.`universe_id` = `universe`.`id`
P粉5216974192024-04-01 14:50:41
const sql = "SELECT h.id, h.name, u.name as universe_id FROM `hero` as h LEFT JOIN `universe` as u ON h.universe_id=u.id";