приджойнить вторую таблицу, но её нужно отсортировать и ограничить одной записью на заказ. Возможно?
Да. Если это postgres, то можно заджойнить селект с дополнительным полем rank/row_number и оконной функцией с сортировкой, если mysql, то 2 джоина придется делать. Но лучше пересмотреть схему. Подозреваю, что вам часто нужно выбирать текущее состояние заказа, и почему бы не добавить внешний ключ с последним элементом заказа в таблицу с заказами? В случае постгресса: SELECT c.*, p.* FROM customer c INNER JOIN (SELECT RANK() OVER (PARTITION BY customer_id ORDER BY date DESC) r, * FROM purchase) p ON (c.id = p.customer_id) WHERE p.r = 1
Обсуждают сегодня