Đây là cấu trúc bảngLàm thế nào để CHỌN bằng MAX (ngày)?
CREATE TABLE `reports` (
`report_id` int(11) NOT NULL auto_increment,
`computer_id` int(11) NOT NULL default '0',
`date_entered` datetime NOT NULL default '1970-01-01 00:00:00',
`total_seconds` int(11) NOT NULL default '0',
`iphone_id` int(11) default '0',
PRIMARY KEY (`report_id`),
KEY `computer_id` (`computer_id`),
KEY `iphone_id` (`iphone_id`)
) ENGINE=MyISAM AUTO_INCREMENT=120990 DEFAULT CHARSET=latin1
Tôi cần một tuyên bố SELECT
rằng sẽ liệt kê các report_id
mỗi computer_id
từ mới nhất vào date_entered
, và tôi không có đầu mối làm thế nào để làm điều đó. Bất cứ ai có thể chỉ cho tôi đi đúng hướng? Thx trước.
Gần như. Tôi đã bỏ qua "a.report_id = b.report_id" và điều đó đã xảy ra. Cảm ơn bạn – poetter747
Đây là một chút không hiệu quả bởi vì bạn đang tạo quá nhiều truy vấn phụ. Thay vào đó, hãy thử sử dụng truy vấn con không tương quan. https://dev.mysql.com/doc/refman/5.6/en/example-maximum-column-group-row.html – Pablo
Pablo là chính xác. Việc lọc có thể được thực hiện trước đó bằng cách tham gia một truy vấn phụ, do đó tiết kiệm hiệu suất. – twicejr