Tôi hiểu rằng bạn có thể chỉ định -> differ () trên câu lệnh db_select để nó chỉ trả về các giá trị riêng biệt khi xem TẤT CẢ các trường. Nhưng điều tôi muốn là trả về các giá trị khác biệt bằng cách chỉ nhìn vào MỘT trường. Đây là mã của tôi:
$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');
Giả sử tôi muốn cột riêng biệt là e.nid. Bạn sẽ nghĩ -> khác biệt ('e.nid') sẽ hoạt động nhưng nó vẫn trả về các giá trị riêng biệt dựa trên tất cả các trường (nghĩa là khác biệt (cột1, cột2, cột3, v.v.).
db_select
để làm điều tương tự