我有一个关于 Laravel 查询的问题。我有一个上传模型和数据库表,用于存储我的所有图像。然后有一个活动模型和存储我所有活动的数据库表。对于每项活动,我都想要一张图片。
所以我的 Activity 模型有一个“uploads_id”列。我这样写了查询:
$activity_images = DB::table('uploads')
->join('activities', 'uploads.id', '=', 'activities.upload_id')
->where('uploads.id', '=', 'activities.upload_id')
->get();
找不到正确的图像。我做错了什么?
您在
join
和 where
条款中“加入”了两次。您可以在 join
中连接一次 uploads.id 和 events.upload_id,然后在 where
子句中再次连接一次。
如果您想查询特殊的 upload.id,您的查询应如下所示:
$activity_images = DB::table('uploads')
->join('activities', 'uploads.id', '=', 'activities.upload_id')
->where('uploads.id', '=', '<yourUploadID>')
->get();
如果想要所有图片,可以删除
where
语句。
$activity_images = DB::table('uploads')
->join('activities', 'uploads.id', '=', 'activities.upload_id')
->get();
如果您使用
join
,则会使用 inner join
。
如果您想要上传表格中的所有条目,您也可以使用 leftJoin
。
$activity_images = DB::table('uploads')
->leftJoin('activities', 'uploads.id', '=', 'activities.upload_id')
->get();
它能解决您的问题吗?