簡體   English   中英

laravel 關系使用 MySQL 加入

[英]laravel relation using MySQL join

我的產品 Model 有關系,它工作正常

        self::where('products.id', '=', $id)
        ->select('products.category_id', 'main_categories.id as main_category_id')
            ->join('categories', 'products.category_id', '=', 'categories.id')
                ->join('main_categories', 'categories.main_category_id', '=', 'main_categories.id')
                    ->first();

我已將其替換為

        self::where('products.id', '=', $id)
        ->select('products.category_id', 'categories.id as parent_id')
            ->join('categories', 'products.category_id', '=', 'categories.id')
                ->join('categories', 'categories.parent_id', '=', 'categories.id')
                    ->first();

現在我得到這個錯誤

語法錯誤或訪問沖突:1066 不是唯一的表/別名:'categories'(SQL:select products . category_idcategories . id as parent_id from products inner join categories on products . category_id = categories . id inner join categories on categories . parent_id = categories . id where products . id = 13 限制 1)

您在不使用任何別名的情況下兩次使用同一個表進行連接。

請參考以下代碼

self::where('products.id', '=', $id)
        ->select('products.category_id', 'cate1.id as parent_id')
            ->join('categories as cate1', 'products.category_id', '=', 'cate1.id')
                ->join('categories as cate2', 'cate1.parent_id', '=', 'cate2.id')
                    ->first();

注意:希望您從cate1parent_id 如果不是,請隨時將別名更改為適當的名稱。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM