Best practice: načtení dalších polí v jednom dotazu
- rerege
- Člen | 58
Velmi se omlouvám, pokud už to tady ve fóru někdo řešil, neumím pořádně pojmenovat svojí potřebu, tak jsem i po dlouhém hledání nenašel nějaké jasné stanovisko…
Mám takovýto dotaz
$products = ArrayHash::from([
'deliveryPrice' =>
$this->database->table('product_e_order')
->where('e_order_id=? AND product_e_order.product_id IN
(SELECT product_id FROM product_category WHERE category_id=?)', $orderId, $categoryDelivery)
->sum(self::COLUMN_QUANTITY . ' * ' . 'product' . '.' . ProductManager::COLUMN_PRICE)]);
(ani nechápu jak se to spáruje s tab. product – to díky klíčům?)
nicméně to hlavní: já potřebuji z tab. product ještě načíst další 2 sloupce (title a code) – půjde vždy o 1 záznam
SELECT title, code
FROM product
JOIN product_e_order ON product_e_order.product_id = product.product_id
where product_e_order.e_order_id = $orderId
mám to nějak rvát do jednoho příkazu k tomu ‚deliveryPrice‘?
Nebo uvést další 2 potřeby/pole (pardon nevím jak to nazvat)? A to by
šlo dát do jednoho příkazu?
Editoval rerege (21. 9. 2017 7:11)
- CZechBoY
- Člen | 3608
Ty dalsi data bych vytahl druhym dotazem protoze ti vypadne pole dvojici
title
a code
.
$selectionProducts = $this->database->table('product_e_order')
->where('e_order_id=?', $orderId)
->select('product.code')
->select('product.title');
foreach ($selectionProducts as $product) {
$product->code;
$produvt->title;
}