我有这个查询,当我在phpmyadmin中运行它时返回的是我想要的
SELECT c.category_id, c.category_name, sc.sub_cat_id, sc.sub_cat_name, dsc.dual_sub_cat_id, dsc.dual_sub_cat_name
FROM category c
JOIN sub_category AS sc
JOIN dual_sub_category AS dsc
我现在想在Laravel查询中编写它,我已经尝试过了
$cat_display = DB::table('category')
->join ('sub_category')
->join ('dual_sub_category')
->get();
错误是
ErrorException:缺少Illuminate \ Database \ Query \ Builder :: join()的参数2
据我了解该错误,据说我还需要在两个联接上都添加
ON
子句,但我不想这样做,因为我没有按什么来匹配它们。我只想从这3个表中查询和显示此字段。没有
ON
和WHERE
子句是否可能? 最佳答案
您可以通过Laravel关系来做到这一点:https://laravel.com/docs/5.3/eloquent-relationships
首先,创建一个Category
模型。
然后在Category
模型内定义两个关系,如下所示。
class Category extends Model
{
/**
* @var string
*/
protected $table = 'category';
/**
* @return \Illuminate\Database\Eloquent\Relations\HasOne
*/
public function subCategory()
{
return $this->hasMany(SubCategory::class, 'category_id', 'category_id');
}
/**
* @return \Illuminate\Database\Eloquent\Relations\HasOne
*/
public function dualSubCategory()
{
return $this->hasMany(DualSubCategory::class, 'category_id', 'category_id');
}
}
注意:
SubCategory
和DualSubCategory
是模型。在Controller中,您的功能使用以下代码。
$cat_display = Category::with(['subCategory','dualSubCategory'])->get()
让我知道您是否在这里遇到任何问题。
关于mysql - 从Laravel中的三个表中选择,不指定ON,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41280550/