0
私は、SQL文のカウント集計関数をピボットテーブルで直接使用するにはどうすればよいですか?
SELECT label_id, COUNT(*) FROM label_picture WHERE picture_id IN (7,12) GROUP BY label_id
に雄弁/ Laravelの等価を探していますし、これを実行する方法がわかりません。私は、各ラベルイストの使用頻度を把握したい場合は、私は単純にすべてのラベルを歩くと、ラベルごと$label->pictures->count()
を呼び出すことができます
// Picture model
public function labels() { return $this->belongsToMany('App\Label'); }
// Label model
public function pictures() { return $this->belongsToMany('App\Picture'); }
:具体的に私はLaravelで定義された以下の多対多の関係を持っています。しかし、私は、写真の全セットについてこれを行うのではなく、選択された写真のリスト(例えば、最初のSQLの例のids7および12)についてのみ行う。私は雄弁/ Laravelでこれを行うにはどうすればよい
label_id COUNT(*)
1 2
2 1
3 2
につながる
label_picture:
label_id: 1, picture_id: 1
label_id: 1, picture_id: 2
label_id: 2, picture_id: 7
label_id: 2, picture_id: 3
label_id: 1, picture_id: 12
label_id: 3, picture_id: 7
label_id: 2, picture_id: 2
label_id: 1, picture_id: 7
label_id: 3, picture_id: 12
とSQL文の
SELECT label_id, COUNT(*) FROM label_picture WHERE picture_id IN (7,12) GROUP BY label_id
:
私のピボットテーブルには、次のようになりますか?
作品。本当にありがとう。私は、ピボットテーブルにアクセスするためのエレモクな方法はないと思っていましたが。 – Steevie