I wanted to sort products by new from date , please see the query but
it is not working perfectly
$collection->getSelect()
->joinLeft(
['catalog_product_entity_datetime' => 'catalog_product_entity_datetime'],
'e.entity_id = catalog_product_entity_datetime.entity_id AND catalog_product_entity_datetime.attribute_id = (SELECT attribute_id FROM eav_attribute WHERE attribute_code = "news_from_date" LIMIT 1)',
['value' => 'catalog_product_entity_datetime.value']
)
->group('e.entity_id')
->order('value','asc');
This is giving this query but it is not working
SELECT `e`.*, `price_index`.`price`, `price_index`.`tax_class_id`, `price_index`.`final_price`, IF(price_index.tier_price IS NOT NULL, LEAST(price_index.min_price, price_index.tier_price), price_index.min_price) AS `minimal_price`, `price_index`.`min_price`, `price_index`.`max_price`, `price_index`.`tier_price`, IFNULL(review_summary.reviews_count, 0) AS `reviews_count`, IFNULL(review_summary.rating_summary, 0) AS `rating_summary`, `catalog_product_entity_datetime`.`value` FROM `catalog_product_entity` AS `e`
INNER JOIN `catalog_product_index_price` AS `price_index` ON price_index.entity_id = e.entity_id AND price_index.customer_group_id = 0 AND price_index.website_id = '1'
LEFT JOIN `review_entity_summary` AS `review_summary` ON e.entity_id = review_summary.entity_pk_value AND review_summary.store_id = 1 AND review_summary.entity_type = (SELECT `review_entity`.`entity_id` FROM `review_entity` WHERE (entity_code = 'product'))
LEFT JOIN `catalog_product_entity_datetime` ON e.entity_id = catalog_product_entity_datetime.entity_id AND catalog_product_entity_datetime.attribute_id = (SELECT attribute_id FROM eav_attribute WHERE attribute_code = "news_from_date" LIMIT 1) GROUP BY `e`.`entity_id` ORDER BY `value` ASC