Maison  >  Questions et réponses  >  le corps du texte

Comment obtenir le nom des données d'une table relationnelle au lieu de l'identifiant

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粉276064178P粉276064178184 Il y a quelques jours298

répondre à tous(2)je répondrai

  • P粉432906880

    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`

    répondre
    0
  • P粉521697419

    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";

    répondre
    0
  • Annulerrépondre