Laravel DB 查询涉及 join 和 where

问题描述 投票:0回答:1

我有一个关于 Laravel 查询的问题。我有一个上传模型和数据库表,用于存储我的所有图像。然后有一个活动模型和存储我所有活动的数据库表。对于每项活动,我都想要一张图片。

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

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

找不到正确的图像。我做错了什么?

mysql laravel-5
1个回答
0
投票

您在

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();

它能解决您的问题吗?

© www.soinside.com 2019 - 2024. All rights reserved.