sql >> Database >  >> RDS >> Mysql

Hoe gegevens uit een andere tabel te halen met behulp van kolomgegevens uit een andere tabel?

Je zou een model als dit moeten maken

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

Dan

Gebruiker uit e-mail halen

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

E-mail ontvangen van gebruiker

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

U hebt nu toegang tot uw gegevens vanuit uw twee modellen.

Probeer twee commando's hierboven af ​​te drukken, u zult zien dat uw gegevens de gegevens uit de gerelateerde tabel bevatten.

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

Dit is mijn antwoord.

[
    {
        "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"
    }
]

Meer informatie:http://sailsjs.com/ documentatie/concepten/modellen-en-orm/associaties/één-op-één




  1. Mysql-query om dubbele Wordpress-opmerkingen te verwijderen?

  2. Postgresql wijzig kolomtype van int in UUID

  3. Is er een verschil tussen DATE_SUB() en het gebruik van rekenkundige operatoren voor datetime-berekening?

  4. gebruik de resultatenset van de mysql-opgeslagen procedure in een andere opgeslagen procedure