【问题标题】:Join in Pivot tabel Laravel加入数据透视表 Laravel
【发布时间】:2016-12-26 12:24:26
【问题描述】:

我有以下表格:

食物:

  • Foodid(pk)
  • 食物名称
  • 食物图片
  • 说明

类别:

  • Category_id(pk)
  • 类别名称

餐厅

  • Res_id(pk)
  • 资源名称
  • 地址

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]:找不到列:1054 'on 子句'中的未知列 'Food.Category_id'(SQL:选择 Food.Food_idFood.FoodNameFood.@ 987654327@, Categories.CategoryName 来自Food 内部连接Categories Categories.Category_id = Food.Category_id = Categories.@98p765 早餐>

问题出在哪里。如何使用这些表格根据类别显示食品?

【问题讨论】:

    标签: php database laravel-5.2


    【解决方案1】:

    您正在加入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();
    

    【讨论】:

    • 它给出错误:SQLSTATE[42S02]:未找到基表或视图:1146 表“foody.category_food_restauarant”不存在(SQL:选择Food.Food_idFood .FoodName, Food.FoodImage, Categories.CategoryName from category_food_restauarant 内连接 Categories on Categories.Category_id = Food内连接Food.@987在Food.Food_id = category_food_restauarant.Food_id 其中Categories.CategoryName = 早餐)
    • 我想我弄错了表名的拼写。应该是category_food_restaurant
    • 是的,拼写有问题。现在可以了。非常感谢
    • 您能否更新使用 eloquent 时的答案,或者我应该发布一个新问题吗?
    猜你喜欢
    • 1970-01-01
    • 2020-06-14
    • 2018-04-10
    • 1970-01-01
    • 1970-01-01
    • 2020-09-19
    • 1970-01-01
    • 2018-06-15
    • 1970-01-01
    相关资源
    最近更新 更多