Dear, a small stupor how to make a request. There are two tables, in one data for each object, and in the second its state (id, the time when there was a change). It is required to make a selection to get a list of all objects and their last change, that is, to display all objects and if the change in the selected date was then record this time, if there was no change (there is no corresponding table entry) then write NULL. How to make a request? Tried such a request but the condition is wrong a little. In different ways I tried or did not fully return or nothing.
SELECT `objects`.`id`, `objects`.`weight`, `objects`.`price`, `objects`.`status`, MAX(status.changeStatusTime) FROM `objects` LEFT JOIN `status` ON `status`.`id_obj` = `objects`.`id` WHERE DATE(status.changeStatusTime) = '2017-02-05' GROUP BY `objects`.`id` 
DATE(status.changeStatusTime) = '2017-02-05'conditionDATE(status.changeStatusTime) = '2017-02-05'better written like this:status.changeStatusTime>= '2017-02-05' and status.changeStatusTime<'2017-02-05'+interval 1 day. It looks more cumbersome, but the search speed can be ten times higher, especially if there is an index on the field with a date. Applying any function to a table column causes the database to first perform calculations on each record, secondly it makes it impossible to use indexes and the query is forced to view the entire table - Mike