SELECT o.GID, ( SELECT d.date FROM deliveries d WHERE d.ORDER = o.GID ORDER BY d.date DESC LIMIT 1 ) AS mdate, o.STATUS, d1.date FROM orders o LEFT JOIN deliveries d1 ON o.GID = d1.ORDER LEFT JOIN deliveries_sended ds ON d1.GID = ds.delivery WHERE ( o.STATUS =6 AND ds.date >'2016-02-10' ) OR o.STATUS !=6 GROUP BY o.GID ORDER BY o.date DESC
Zapytanie ma pobierać rekordy z bazy orders, które mają status różny od 6, lub takie które mają status 6, ale są wysłane (deliveries_sended) później niż 10 lutego
Z góry dzięki za odpowiedzi. Pozdrawiam.
Edit:
Wywaliłem Selecta w selekcie i teraz jest 1,6 sek dla 500 rekordów, to i tak sporo
SELECT o.GID, o.STATUS, d1.date FROM orders o LEFT JOIN deliveries d1 ON o.GID = d1.ORDER LEFT JOIN deliveries_sended ds ON d1.GID = ds.delivery WHERE ( o.STATUS =6 AND ds.date >'2016-02-10' ) OR o.STATUS !=6 GROUP BY o.GID ORDER BY o.date DESC