私は、次のクエリビルダを使用します。LaravelでSQLクエリを書き直すには?
$res = Announcement::whereExists(function ($query) {
$query->select(DB::raw(1))
->from('announcement_category')
->join('user_category', 'user_category.category_id', '=', 'announcement_category.category_id')
->where('user_category.user_id', 1)
->where('announcement_category.announcement_id', '=', 'announcements.id')
->whereNull('deleted_at');
})->get();
短い形式with
使用してこの問合せをリライトする方法:
Announcement::with("announcement_category")...
をこのクエリビルダーで最後にconditonとwhere delete_at NOT null
を追加し、それが動作する、ので違う。テーブル間
関係:
Announcement Announcement_category User_category
_____________ ____________________________ _______________
id | name announcement_id | category_id user_id | category_id
1)Announcement
ことができる1つまたは複数のカテゴリ(Announcement has many Announcement_category)
を有する
3)User_category
はによってAnnouncement_category
と関連していることができる
category_id = category_id
'Announcement'、' AnnouncementCategory'と 'User'の間に設定した関係を表示できますか? –
はい、更新された質問を見てください – Darama
誰が私を助けることができますか? – Darama