php - 如何在 Laravel Controller 中创建 SQL Join 语句
问题描述
我有两个表customer_id
并tbl_customer
连接tbl_stocks
在同一个数据库上。我关于这个问题的逻辑是 JOIN sql 语句。
这适用于 Laravel 和 MySQL,到目前为止,我已经在 PHP 上尝试过这个并且工作正常,但是当我在 laravel 上实现它时它不起作用我想知道为什么?
这是我在 PHP 中的代码,想将其转换为 laravel,但我不知道该放在哪里?我会把它放在视图中还是控制器中
$query = "SELECT c.*, s.* FROM tbl_customer c JOIN tbl_stock s ON s.customer_id = c.customer_id AND c.customer_id = 1";
控制器
$data = DB::table('tbl_customer')
->join ...... //Im not sure about this
->select .... // neither this
->get();
print_r($data)
模型
我的模型上没有代码
路线
Route::get('/admin/shopcontrol', 'Admin\ShopsController@testquery');
我期望以简单的方式获取或获取值的查询或结果的结果,echo
并且获取连接已连接
解决方案
你检查过 Laravel 网站吗?
https://laravel.com/docs/5.7/queries#joins
它有一个演示,您可以使用它来重新组织您的代码。
如下所示。
Joins 内连接子句
查询生成器也可用于编写连接语句。要执行基本的“内部连接”,您可以在查询构建器实例上使用 join 方法。传递给 join 方法的第一个参数是您需要连接的表的名称,而其余参数指定连接的列约束。当然,如您所见,您可以在单个查询中加入多个表:
$users = DB::table('users')
->join('contacts', 'users.id', '=', 'contacts.user_id')
->join('orders', 'users.id', '=', 'orders.user_id')
->select('users.*', 'contacts.phone', 'orders.price')
->get();
如果适合您,您可以在那里找到更多信息。
推荐阅读
- oracle - 插入到 oracle DB 很慢 - JDBC
- vba - xlPastevalues 给了我一个对象定义的错误 VBA
- java - “受保护”修饰符没用吗?
- python - 如何使用循环用相关值填充 3D 矩阵?
- floating-point - 将浮点数转换为包含所有数字的字符串
- webpack - 如何在 DOM 准备好之前开始动态加载 JS?
- asp.net-mvc - AspNetZero - .NET Core 2.0 MVC 版本 - 添加新控制器时出错
- javascript - 如何将对象字符串拆分为单个字符串?VueJS 和计算属性
- xamarin - Visual Studio 2017、Xamarin 和更新包
- r - 基于其他变量创建新变量,并在 R 中循环变量名称