Доброе утро!
У меня есть следующая настройка базы данных:
вот операторы db (без индизов и прочего, столбцов гораздо больше, но отмечу только нужные, запросы выполняться не будут):
CREATE TABLE IF NOT EXISTS d02bc910.orders (
id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
shops_id INT(10) UNSIGNED NOT NULL,
created_at TIMESTAMP NULL DEFAULT NULL,
updated_at TIMESTAMP NULL DEFAULT NULL,
PRIMARY KEY (id);
CREATE TABLE IF NOT EXISTS d02bc910.shops_status (
shops_status_id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
shops_id INT(10) UNSIGNED NOT NULL,
translations_id INT(10) UNSIGNED NOT NULL, <= the software's multilingual so I use translations here
status_order TINYINT(3) NOT NULL,
PRIMARY KEY (shops_status_id);
CREATE TABLE IF NOT EXISTS d02bc910.orders_status (
order_id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
status_id INT(10) UNSIGNED NOT NULL,
users_id INT(10) UNSIGNED NOT NULL,
updatedAt DATETIME NOT NULL;
Что я хочу сделать сейчас, так это создать отчет, содержащий все заказы, соответствующие различным параметрам поиска, включая последний статус для этого соответствующего заказа. Но я не знаю, как совместить JOIN с order_status с последним установленным status_id. Я мог бы сделать это в PHP foreach впоследствии, но тогда мне пришлось бы либо сначала собрать все идентификаторы, запустить оператор, а затем сопоставить результаты, но я думаю, что есть способ сделать это в SQL.
Может ли кто-нибудь помочь мне с этим, пожалуйста?
Заранее спасибо, С
таблица shop_status содержит все статусы, которые может иметь заказ для этого магазина, поэтому я хотел присоединиться к таблице shop_status, используя shop_status_id ... имена ключей не совпадают, и я на самом деле не очень доволен этим, но я исправлю это позже
в результате я хотел бы, чтобы заказ и последний статус были установлены для этого заказа






Меня смущает эта схема. Я вижу, что существует взаимосвязь между заказами и orders_status (orders.id = orders_status.order_id), но я не понимаю, при чем тут shop_status или откуда берется самый последний статус. Вы можете уточнить вопрос, добавив образцы данных и ожидаемый результат в виде текста.