我了解您可以在db_select语句上指定-> distinct(),以便在查看所有字段时仅返回不同的值。但是我想要的是通过仅查看一个字段来返回不同的值。这是我的代码:
$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,columns3等)。
db_select
做同样的事情