【问题标题】:Join in 3 tables加入3张桌子
【发布时间】:2016-07-25 08:45:34
【问题描述】:

我有 3 桌食物、餐厅和类别。
我想在这些之间加入。我有一个查询要加入食物和类别:

> $Category = DB::table('food')->select('food.Food_id','food.FoodName','food.FoodImage','food.FoodType','categories.CategoryName')->join('categories','categories.Category_id','=','food.Category_id')->where('categories.CategoryName', '=','Breakfast')->get();

我想用这个加入餐厅。我怎么能这样做? 我的桌子是:

食物:

  • Food_id(PK)

    食物名称

    Category_id(FK)

类别表为:

  • Category_id(PK)

    类别名称

餐厅的桌子是:

  • Res_id

    Res_Name

    地址位置

    Food_id(FK)

【问题讨论】:

  • sqlserver、sqlite还是mysql,你用的是哪一个?
  • 我正在使用 phpmyadmin
  • 好的,数据库如果是 mysql 那么 :) 你能说明你是如何尝试从我的答案中实现代码的吗?

标签: php mysql database laravel-5


【解决方案1】:
$Category = DB::table('food')->select('food.Food_id','food.FoodName','food.FoodImage','food.FoodType','categories.CategoryName', 'restaurant.Res_Name')
 ->join('restaurant', 'restaurant.Food_id', '=', 'food.Food_id')
 ->join('categories','categories.Category_id','=','food.Category_id')
 ->where('categories.CategoryName', '=','Breakfast')->get();

您可以使用 Food_id 将餐厅加入到食物中。

(不确定代码的语法是否正确,但它适合您的示例。可能需要更改餐厅的表名,因为您似乎在小写和大写之间切换)

【讨论】:

  • 你能试着把它写在一行里吗,就像你的例子一样?您只需在 ->where('categories.CategoryName', '=','Breakfast')->get(); 之前添加 ->join('restaurant', 'restaurant.Food_id', '=', 'food.Food_id')
猜你喜欢
  • 1970-01-01
  • 2011-05-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-24
相关资源
最近更新 更多