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

複数のテーブルとのMySQLの関係

    雄弁な方法:

    // Makes that have forsale nested relation
    Make::whereHas('models', function ($q) {
        $q->whereHas('trims', function ($q) {
            $q->has('forsales');
        });
    })->get(); // returns Eloquent Collection
    

    正しい関係を持つモデル(hasManyは、実際の関係がどこかにある場合はhasOneに置き換えることができます):

    // Make model
    public function models()
    {
        return $this->hasMany('CarModel');
    }
    
    // CarModel (as you can't use Model name)
    public function trims()
    {
        return $this->hasMany('Trim');
    }
    public function make()
    {
        return $this->belongsTo('Make');
    }
    
    // Trim model
    public function forsales()
    {
        return $this->hasMany('Forsale');
    }
    public function carModel()
    {
        return $this->belongsTo('CarModel');
    }
    
    // Forsale model
    public function trim()
    {
        return $this->belongsTo('Trim');
    }
    


    1. キャッシュなしでMySQLのパフォーマンスを向上

    2. postgresqlからjpa2までのmonth()関数とyear()関数

    3. (ローカルMySQLインスタンスの代わりに)Javaアプリエンジン開発中にGoogleCloudSQLを使用する

    4. ある値より大きいすべての列を選択します