#mysql #sql
Вопрос:
Я создаю динамический конструктор запросов с помощью react-awesome-query-builder для базы данных phpMyAdmin, которую я не контролирую.
Это довольно быстро усложняется, потому что данные разбросаны, поэтому я объединяю 7 таблиц, чтобы делать запросы целевым пользователям.
пример таргетинга:
Целевые неактивные пользователи ( я буду использовать most_recent_order)
Целевые пользователи, которые сделали заказ в ресторане x
Структура базы данных:
phpMyAdmin | |-oath | -users | -users_meta | -users_jobs | |-order | -orders | -carts | -driver_status
oauth.пользователи
id | foo | baa -------------- 1 | x | x 2 | x | x 3 | x | x 4 | x | x 5 | x | x
заказ.заказы ( я знаю плохое название, я не создавал базу данных)
(идентификатор пользователя = user.id)
(названия ресторанов на самом деле хранятся в другой таблице ради этого примера restaurant_id = resturant_names)
id| restaurant_id| customer_id| order_date ---------------------------------------- 1 | Subway | 1 | 11/11/21 2 | Ashas | 1 | 10/11/21 3 | McDonalds | 1 | 12/11/21 4 | Subway | 1 | 12/11/21 5 | Subway | 2 | 10/11/21 6 | Dannys | 2 | 11/11/21 7 | Dannys | 2 | 09/11/21
Я хочу присоединиться к данным и увидеть каждого пользователя и каждый ресторан, в котором они заказали
id| restaurant_id| order_date| foo | ray ---------------------------------------- 1 | Subway | 11/11/21 | x | x 1 | Ashas | 10/11/21 | x | x 1 | McDonalds | 12/11/21 | x | x 1 | Subway | 12/11/21 | x | x 2 | Subway | 10/11/21 | x | x 2 | Dannys | 11/11/21 | x | x 2 | Dannys | 09/11/21 | x | x
So this would just be left-join?
Now if I wanted to add a new column to users after doing the above. How would I add a new column labeled latest_order_date with the most recent order_date?
Either like below
id| restaurant_id| order_date| latest_order_date |foo | ray ---------------------------------------- 1 | Subway | 11/11/21 | null | x | x 1 | Ashas | 10/11/21 | null | x | x 1 | McDonalds | 12/11/21 | 12/11/21 | x | x 1 | Subway | 12/11/21 | null | x | x 2 | Subway | 10/11/21 | null | x | x 2 | Dannys | 11/11/21 | 11/11/21 | x | x 2 | Dannys | 09/11/21 | null | x | x
или
id| restaurant_id| order_date| latest_order_date |foo | ray ---------------------------------------- 1 | Subway | 11/11/21 | 12/11/21 | x | x 1 | Ashas | 10/11/21 | 12/11/21 | x | x 1 | McDonalds | 12/11/21 | 12/11/21 | x | x 1 | Subway | 12/11/21 | 12/11/21 | x | x 2 | Subway | 10/11/21 | 11/11/21 | x | x 2 | Dannys | 11/11/21 | 11/11/21 | x | x 2 | Dannys | 09/11/21 | 11/11/21 | x | x