Как получить данные из таблицы 3-го уровня с помощью объединений [Laravel] - PullRequest
1 голос
/ 13 марта 2019

Я хочу получить количество продукта, которое хранится в bd_product_item_ledgers с использованием первичного ключа (ID) bd_products

bd_products связан с bd_product_ledgers Затем bd_product_ledgers связан с bd_product_item_ledgers

таблица: bd_products

---------------------------------------------------------------------------------
| id |  name  |    description   | image     | created_at | updated_at
---------------------------------------------------------------------------------
| 1  | shoe   | this is a shoe   | 15243.jpg | 
---------------------------------------------------------------------------------

таблица: bled_product

---------------------------------------------------------------------------------
| id |  product_id  |  cost    | created_at | updated_at
---------------------------------------------------------------------------------
| 1  |      1       | 500.00   |
---------------------------------------------------------------------------------

таблица: bd_product_item_ledgers

---------------------------------------------------------------------------------
| id |  product_ledger_id |  quantity  | created_at | updated_at
---------------------------------------------------------------------------------
| 1  |          1         |   200      |
---------------------------------------------------------------------------------

Я могу получить стоимость продукта, потому что там есть ID, но как я могу также получить количество?

Простой MySQL Query Или Laravel Eloquent и т. Д. Все будет хорошо.

Спасибо!

Ответы [ 2 ]

1 голос
/ 13 марта 2019

Я не уверен, но я создал демонстрационный проект с помощью следующих таблиц и ввел данные, предоставленные вами

ЕГО ЧИСТАЯ ФАСАД DB ВЕРСИЯ

[ЕСЛИ ВАМ НЕОБХОДИМО В СЛУЧАЙНОМ СПОСОБЕ, ПОЖАЛУЙСТА, ПОДЕЛИТЕСЬ ИМЕНАМИ ВАШИХ МОДЕЛЕЙ]

public function index()
    { 
        $selctArray = [
                'bd_products.name',
                'bd_products.description',
                'PRDLED.cost as productCost',
                'PRDITLED.quantity as productQuantity',

        ];

        $joinQuery = DB::table('bd_products')
                        ->leftJoin('bd_product_ledgers as PRDLED','PRDLED.product_id','=','bd_products.id')
                        ->leftJoin('bd_product_item_ledgers as PRDITLED','PRDITLED.product_ledger_id','=','PRDLED.id')
                        ->select($selctArray)->get();
dd($joinQuery);

        }

QUERY IMAGE, пожалуйста, прокомментируйте ниже, если оно не удовлетворяет вашим требованиями улучшите свой вопрос

1 голос
/ 13 марта 2019

создайте три модели Product, Item, Ledger и определите ваши регистры отношений в модели продукта и Item в модели Ledger, которые вы можете получить с помощью запроса, например,

$data = Product::with('ledgers.item')->get();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...