需要Laravel查询帮助

时间:2016-11-24 12:32:15

标签: mysql laravel-5

我对Laravel查询有疑问,所以我有一个上传模型和数据库表来存储我的所有图像。然后有一个活动模型和数据库表存储我的所有活动。对于每个活动,我想要一个图像。

所以我的Activity模型有一个'uploads_id'列。我写了这样的查询:

$activity_images =  DB::table('uploads')
->join('activities', 'uploads.id', '=', 'activities.upload_id')
->where('uploads.id', '=', 'activities.upload_id')
->get();

找不到合适的图像我做错了什么?

1 个答案:

答案 0 :(得分:0)

您在joinwhere条款中“加入”了两次。您可以在joinwhere子句中再次连接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();

它能解决你的问题吗?