mysql - 需要 Laravel 查询帮助

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

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

最佳答案

您在 joinwhere 子句中“加入”两次。您可以在join 中连接一次uploads.id 和activities.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();

它能解决您的问题吗?

关于mysql - 需要 Laravel 查询帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40786537/

相关文章:

php - 如何在 Laravel 中执行多重身份验证?

mysql - Laravel 搜索查询有两个条件

mysql - sequelize 给出了错误的表名

mysql - sql连接4个表并返回所有字段

mysql - HTTP 状态 500 - javax.servlet.ServletException : java. lang.ClassNotFoundException : com. mysql.jdbc.driver

php - 构建父子类别 Codeigniter

php - PDO 将默认获取模式设置为 FETCH_UNIQUE

php - 在 Laravel 5 中缓存整个 HTML 响应

php - PHP 和 Laravel 的特性

php - 如何在 Laravel 5 中有条件地要求身份验证?