私はこのクエリを使用しようとしています: MySQL SELECT DISTINCT by maximum value
SELECT
p.*
FROM
product p
INNER JOIN
( SELECT
magazine, MAX(onSale) AS latest
FROM
product
GROUP BY
magazine
) AS groupedp
ON groupedp.magazine = p.magazine
AND groupedp.latest = p.onSale ;
Symfony2とDQL内。
私は持っています:
$query = $em->createQuery("SELECT p FROM MyBundle:Product p WHERE p.type = 'magazine' AND p.maglink IS NOT NULL OR (p.type = 'magazine' AND p.diglink IS NOT NULL) GROUP BY p.magazine ORDER BY p.onSale DESC");
これはオブジェクトで正常に動作し、オブジェクトを出力しますが、正しいものはありませんMAX(onSale)
行うこと:
$query = $em->createQuery("SELECT p , MAX(p.onSale) FROM MyBundle:Product p WHERE p.type = 'magazine' AND p.maglink IS NOT NULL OR (p.type = 'magazine' AND p.diglink IS NOT NULL) GROUP BY p.magazine ORDER BY p.onSale DESC");
非オブジェクトが返されます。
これ:
$query = $em->createQuery("SELECT
p.*
FROM
MyBundle:Product p
INNER JOIN
( SELECT
p.magazine, MAX(onSale) AS p.latest
FROM
MyBundle:Product p
GROUP BY
p.magazine
) AS groupedp
ON groupedp.magazine = p.magazine
AND groupedp.latest = p.onSale ;");
このエラーをスローします:[Semantical Error] line 0、col 127 near'SELECT':Error:Identification Variable(結合パス式で使用されますが、以前は定義されていませんでした。
このSymfony2Doctrineクエリが原因だと思います
各アイテムを販売で並べ替えることができる一方で、マッピングを維持するにはどうすればよいですか?