sql >> データベース >  >> RDS >> Mysql

別のテーブルの列データを使用して他のテーブルからデータを取得するにはどうすればよいですか?

    このようなモデルを作成する必要があります

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

    次に

    メールからユーザーを取得

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

    ユーザーからメールを受け取る

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

    これで、2つのモデルの両方からデータにアクセスできます。

    上記の2つのコマンドを印刷してみると、データに関連するテーブルのデータが含まれていることがわかります。

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

    これが私の回答です。

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

    詳細情報: http://sailsjs.com/ドキュメント/コンセプト/モデルとオーム/アソシエーション/1対1




    1. MySQL for Visual Studioのインストールに失敗しました、エラーコード1603

    2. SQL Serverトランザクションログ、パート1:ログの基本

    3. postgresqlのRownum

    4. MySQLテーブルにはIDが必要ですか?