sql >> Database teknologi >  >> RDS >> Mysql

Hvordan får man data fra en anden tabel ved hjælp af en kolonnedata fra en anden tabel?

Du bør oprette en model som denne

api/models/Email.js

attributes: {
    email : {
        type: 'email',
        unique: true
    },
    owner : {
        model:'user',  //here put your model name 
        unique: true   //put unique here because it's one by one association
   }
}

api/models/User.js

attributes: {
   username : {
     type: 'string',
     unique: true
   },
   userEmail : {
      collection:'email', //here is also model name
      via: 'owner'
   }
}

Hent bruger fra e-mail

Email.find().populate('owner')

Få e-mail fra bruger

User.find().populate('userEmail')

Nu kan du få adgang til dine data både fra dine to modeller.

Prøv at udskrive to kommandoer ovenfor, du vil se, at dine data indeholder data fra relateret tabel.

Email.find().populate('owner').exec(function(err, records) {
    res.json(records)
});

Dette er mit svar.

[
    {
        "owner": {
            "username": "test",
            "id": 1,
            "createdAt": "2016-11-23T13:45:06.000Z",
            "updatedAt": "2016-11-23T13:45:06.000Z"
        },
        "email": "[email protected]",
        "id": 1,
        "createdAt": "2016-11-23T13:45:06.000Z",
        "updatedAt": "2016-11-23T13:45:06.000Z"
    }
]

Flere oplysninger:http://sailsjs.com/ dokumentation/koncepter/modeller-og-orm/foreninger/en-til-en




  1. hvad er @JoinColumn, og hvordan det bruges i Hibernate

  2. FORMAT() Eksempler i MySQL

  3. Forbedre ydeevnen af ​​UDF'er med NULL ON NULL INPUT

  4. BIN() – Få den binære værdi af et tal i MySQL