Diskuze: doktrina vnořený dotaz

PHP PHP doktrina vnořený dotaz American English version English version

Aktivity (1)
Avatar
solta
Člen
Avatar
solta:21.4.2017 6:09

Ahoj jak udělám v doctrině toto

SELECT r.*, (SELECT SUM(p.amount) FROM p WHERE p.r_id = r.id ) as pay FROM r WHERE r.is_active=1
 
Odpovědět 21.4.2017 6:09
Avatar
Bogdan
Redaktor
Avatar
Odpovídá na solta
Bogdan:21.4.2017 9:01

cool

Nahoru Odpovědět 21.4.2017 9:01
Pořiďte si zánovní MacBook od AppleTRH.cz
Avatar
Bogdan
Redaktor
Avatar
Odpovídá na Bogdan
Bogdan:21.4.2017 9:03

boze. ,proc to furt nejde editovat.... napisu ti to az budu doma

Nahoru Odpovědět 21.4.2017 9:03
Pořiďte si zánovní MacBook od AppleTRH.cz
Avatar
solta
Člen
Avatar
Odpovídá na Bogdan
solta:24.4.2017 10:11

Prosim muzes mi to poslat

 
Nahoru Odpovědět 24.4.2017 10:11
Avatar
Václav Keberdle:25.4.2017 18:58

to je v podstate

SELECT r.*, SUM(p.amount) as pay
FROM r
LEFT JOIN p
WHERE r.is_active=1
GROUP BY p.r_id

takže:

$this->createQueryBuilder('r')
            ->select('r, SUM(p.amount) as pay')
            ->leftJoin('r.p', 'p')
            ->where("r.is_active=1")
            ->groupBy('r.r_id')
            ->getQuery()
            ->getResult();
Akceptované řešení
+20 Zkušeností
+1 bodů
Řešení problému
 
Nahoru Odpovědět  +2 25.4.2017 18:58
Avatar
Bogdan
Redaktor
Avatar
Bogdan:26.4.2017 11:01

Promiň, až dnes jsem se dostal k PC.
Václav už ti to napsal, jen bych to trochu upravil.

$qb = $this->createQueryBuilder('r');
$qb->select('r, SUM(p.amount) as pay');
$qb->leftJoin('r.p', 'p');
$qb->where("r.is_active = :status");
$qb->groupBy('r.r_id');
$qb->setParameter('status', 1);
//$qb->setParameters(['status' => 1, 'dalsi_parameter' => 'hodnota']) #pokud více parametru
$qb->getQuery()->getResult();
//$qb->getQuery()->useQueryCache(true)->getResult(); #zapnes cachování pro quary
Nahoru Odpovědět  +1 26.4.2017 11:01
Pořiďte si zánovní MacBook od AppleTRH.cz
Avatar
solta
Člen
Avatar
Odpovídá na Bogdan
solta:26.4.2017 12:49

díky mrknu na to večer

 
Nahoru Odpovědět 26.4.2017 12:49
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 7 zpráv z 7.