4
PHPで500個のSQLクエリを作成するループを作成しましたが、500個のSQLクエリを1つにマージして同じリターンを取得したいと考えています私はSQLクエリを1つのSQLクエリにマージする
クエリ1
01をマージする2つのSQLクエリの各会社)PHPコードの例
$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;
例
SELECT count(u0_.id) FROM user u0_ WHERE u0_.email LIKE '%@company1.com'
クエリ2
SELECT
count(u0_.id)
FROM
user u0_
WHERE
u0_.email LIKE '%@company2.com'
私はcreateQueryBuilder http://symfony.com/doc/current/book/doctrine.html#querying-for-objects-using-doctrine-s-query-builderを使用してソリューションを好むが、私はまた、SQLネイティブクエリで満足しています。条件付きの集約
すべて 'LIKE「%@のsomecompany.com''条件u0_.email配列に入れて、OR''とそれらを結合します。 – syck
私はすべての 'u0_.email LIKE '%@ somecompany.com''条件を配列に入れ、それらを' OR'で結合するとわかりません。私が得られる結果は、どの会社のユーザー数でもあります。たとえば、合計で4人のユーザー。私はこの結果を望んでいます:2ユーザーの会社1と2ユーザーの会社2。 –
http://stackoverflow.com/questions/15230350/how-to-combine-results-of-two-queries-into-a-single-datasetの可能な公約 – WebInsight