Maison > Questions et réponses > le corps du texte
J'ai deux tables
Héros
id | Nom | universe_id |
---|---|---|
12 | Étiquette | 1 |
99 | Tranches de gluten | 1 |
Univers
id | Nom |
---|---|
1 | Andromède |
2 | Aurora |
Comment utiliser l'univers name au lieu de universe_id pour renvoyer hero
les données de la table. Désolé, je n'ai pas suffisamment d'expérience SQL pour accomplir cette tâche simple. J'ai lu quelques réponses dans SO qui nécessitent l'utilisation de JOIN.
J'essaie de faire quelque chose comme ça.
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); } }); };
Mais ça ne marche pas.
Mise à jour :
Le résultat attendu est :
[{ id: 12, name: Mark, universe_id: Andromeda }, { id: 99, name: Glume, universe_id: Andromeda }]
P粉4329068802024-04-01 15:30:34
Champs que vous pouvez utiliser dans la clause 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";