すべてのフィールドを調べたときに明確な値のみが返されるように、db_selectステートメントで-> distinct()を指定できることを理解しています。しかし、私が望んでいるのは、1つのフィールドだけを見て、明確な値を返すことです。これが私のコードです:
$event_table = db_select('my_table', 'e')
->distinct()
->orderBy('e.time', 'ASC');//ORDER BY
$event_table->join('node', 'n', 'e.nid = n.nid'); //JOIN node with events
$event_table->groupBy('e.time');//GROUP BY time
$event_table->fields('e')//SELECT the fields from events
->fields('n',array('type','status','title'))//SELECT the fields from node
->orderBy('e.time', 'ASC');//ORDER BY
$result_event_table = $event_table->execute();
$result_event_table = $result_event_table->fetchAllAssoc('time');
個別の列をe.nidにしたいとします。-> distinct( 'e.nid')は機能すると思いますが、すべてのフィールドに基づいて個別の値を返します(つまり、distinct(columns1、column2、column3など)。
db_select
、同じことを行うように調整する方法を簡単に理解できるようになります