2016-08-19 139 views
0

我有如下表:加盟枢轴TABEL Laravel

食物:

  • Foodid(PK)
  • FoodName
  • FoodImage
  • 说明

个分类:

  • CATEGORY_ID(PK)
  • 类别名称

餐厅

  • RES_ID(PK)
  • ResName
  • 地址

category_food_restaurant

  • CATEGORY_ID(FK)
  • Food_id(FK)
  • RES_ID(FK)

现在我想根据分类名称显示食品项目为此,我将查询设为:

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

但是这给了我错误:

SQLSTATE[42S22]: Column not found: 1054 Unknown column 'Food.Category_id' in 'on clause' (SQL: select Food . Food_id , Food . FoodName , Food . FoodImage , Categories . CategoryName from Food inner join Categories on Categories . Category_id = Food . Category_id where Categories . CategoryName = Breakfast).

凡通过使用这些表根据类别我可以显示食品的problem.How?

回答

0

您正在加入Food表和Categories表,但它们之间没有直接关系。所以你必须通过category_food_restaurant加入这两个表。以下应该工作:

DB::table('category_food_restaurant') 
      ->select('Food.Food_id','Food.FoodName', 
        'Food.FoodImage','Categories.CategoryName') 
      ->join('Categories','Categories.Category_id', 
        '=','category_food_restaurant.Category_id') 
      ->join('Food','Food.Food_id', 
        '=','category_food_restaurant.Food_id') 
      ->where('Categories.CategoryName', 
        '=','Breakfast')->get(); 
+0

它给出错误:SQLSTATE [42S02]:基表或视图未找到:1146表 'foody.category_food_restauarant' 不存在(SQL:选择'Food'.'Food_id', 'Food'.'FoodName','Food'.'FoodImage','Category'.'' CategoryName' from'category_food_restauarant' inner join' Categories' on'Categories'.'Category_id' ='category_food_restauarant'.'Category_id' inner join 'Food' on'Food'.'Food_id' ='category_food_restauarant'.'Food_id' where'Categories'.'CategoryName' = Breakfast) – MANI

+0

我想我误认了表名的拼写。它应该是'category_food_restaurant'。 –

+0

我修改了我的答案。现在检查它... –