Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Wie erhält man Daten aus einer anderen Tabelle, indem man Spaltendaten aus einer anderen Tabelle verwendet?

Sie sollten ein solches Modell erstellen

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

Dann

Benutzer aus E-Mail abrufen

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

E-Mail von Benutzer abrufen

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

Jetzt können Sie von beiden Modellen aus auf Ihre Daten zugreifen.

Versuchen Sie, zwei Befehle oben zu drucken, Sie werden sehen, dass Ihre Daten die Daten aus der zugehörigen Tabelle enthalten.

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

Dies ist meine Antwort.

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

Weitere Informationen:http://sailsjs.com/ Dokumentation/Konzepte/Modelle-und-Orm/Verbände/Eins-zu-Eins