我对Laravel查询有疑问,所以我有一个上传模型和数据库表来存储我的所有图像。然后有一个活动模型和数据库表存储我的所有活动。对于每个活动,我想要一个图像。
所以我的Activity模型有一个'uploads_id'列。我写了这样的查询:
$activity_images = DB::table('uploads')
->join('activities', 'uploads.id', '=', 'activities.upload_id')
->where('uploads.id', '=', 'activities.upload_id')
->get();
找不到合适的图像我做错了什么?
答案 0 :(得分:0)
您在join
和where
条款中“加入”了两次。您可以在join
和where
子句中再次连接uploads.id和activities.upload_id。
如果您想查询特殊的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();
它能解决你的问题吗?