Best practice: načtení dalších polí v jednom dotazu

rerege
Člen | 58
+
0
-

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
+
+1
-

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;
}
rerege
Člen | 58
+
0
-

@CZechBoY moc díky za pomoc – už mi to fachá

Váňa