4
500 SQL sorgusu yapan bir döngü oluşturdum ancak 500 SQL sorgusunu bir araya getirmek ve aynı getiriyi elde etmek istiyorum (şirketler ve kullanıcıların sayısı her şirket) PHP koduBir SQL sorgusuna SQL sorgularını birleştirme
$companies = array();
foreach ($fortune500Service->listAll() as $c){
$count = $entityManager
->createQueryBuilder()
->select("count(u)")
->from("AppBundle\Entity\User","u")
->where("u.email LIKE :d")
->setParameter("d", "%@" . $c["Domain"])
->getQuery()->getSingleScalarResult();
if ($count == 0) {
continue;
}
$companies[] = array(
"Domain" => $c["Domain"],
"Company" => "{$c["Company"]} ({$count})",
);
}
return $companies;
Örnek I
Sorgu 1
01 birleştirmek istediğiniz 2 SQL sorguları içindeÖrnek
SELECT count(u0_.id) FROM user u0_ WHERE u0_.email LIKE '%@company1.com'
Sorgu 2
SELECT
count(u0_.id)
FROM
user u0_
WHERE
u0_.email LIKE '%@company2.com'
Ben createQueryBuilder http://symfony.com/doc/current/book/doctrine.html#querying-for-objects-using-doctrine-s-query-builder kullanarak bir çözümü tercih ancak bir SQL yerli sorgusu ile de mutluyum.
koyun tüm 'bir diziye LIKE '% @ somecompany.com'' koşulları u0_.email ve OR'' ile birleştirme. – syck
Emin değilim, ancak 'u0_.email LIKE'% @ somecompany.com 'koşullarının tümünü bir diziye koyarsam ve "OR" ile birleştirirseniz. Elde edeceğim sonuç, herhangi bir şirketteki kullanıcı sayısıdır. Örneğin toplamda 4 kullanıcı. Bu sonucu istiyorum: 2 Kullanıcılar Company1 ve 2 Kullanıcılar Company2. –
http://stackoverflow.com/questions/15230350/how-to-combine-results-of-two-queries-into-a-single-dataset – WebInsight