2

propel の groupBy に問題があります。

問題は 2 つのテーブルに属します。1 つはディスプレイと呼ばれ、もう 1 つは customerDisplayType と呼ばれます。customerDisplayType テーブルには、「driver」と「driverOptions」の 2 つの列があります。そして、この 2 つの列を groupBy したいと思います。結果は次のようになります。

Display1 -> with customerDisplayType driver "1" and driverOptions "xyz"
Display2 -> with customerDisplayType driver "1" and driverOptions "abc"
Display3 -> with customerDisplayType driver "2" and driverOptions "xyz"

私はあなたが私が何を意味するか知っていることを願っています...

これまでのところ、次のようなことを試しました。

    $displays = PiDisplayQuery::create()
    ->filterByStationId($_object->getId())    
    ->usePiCustomerDisplayTypeQuery()
        ->groupBy("CONCAT ".PiCustomerDisplayTypePeer::DRIVER.",".PiCustomerDisplayTypePeer::DRIVER_OPTIONS) // I also tried UNION instead of CONCAT
    ->endUse()
    ->find();

どうすれば解決できますか?

4

1 に答える 1

2

コードに関しては、複数の groupBy を使用する場合は、groupBy メソッドを数回呼び出すだけです。

$displays = PiDisplayQuery::create()
  ->filterByStationId($_object->getId())
  ->usePiCustomerDisplayTypeQuery()
    ->groupBy('PiCustomerDisplayType.Driver')
    ->groupBy('PiCustomerDisplayType.DriverOptions')
  ->endUse()
  ->find();
于 2012-04-10T09:16:08.180 に答える