Вывести 2 столбика по разным значениям WHERE
Прошу помочь с составлением SQL-запроса.
Есть таблица:
Структура:
Основная нужная мне сортировка идет по полю maraphon_member_month (период участия в мероприятии).
SELECT orders.date AS order_date, users.ID AS user_id_check, orders.order_id AS order_id, (SELECT meta_value FROM wpux_usermeta WHERE user_id = users.ID AND meta_key = 'first_name' LIMIT 1) AS first_name, (SELECT meta_value FROM wpux_usermeta WHERE user_id = users.ID AND meta_key = 'last_name' LIMIT 1) AS last_name, (SELECT meta_value FROM wpux_usermeta WHERE user_id = users.ID AND meta_key = 'telephone' LIMIT 1) AS telephone, (SELECT meta_value FROM wpux_usermeta WHERE user_id = users.ID AND meta_key = 'age' LIMIT 1) AS age, (SELECT meta_value FROM wpux_usermeta WHERE user_id = users.ID AND meta_key = 'height' LIMIT 1) AS height, (SELECT meta_value FROM wpux_usermeta WHERE user_id = users.ID AND meta_key = 'weight-at-start' LIMIT 1) AS weight_at_start, (SELECT meta_value FROM wpux_usermeta WHERE user_id = users.ID AND meta_key = 'breastfeed' LIMIT 1) AS breastfeed, (SELECT meta_value FROM wpux_usermeta WHERE user_id = users.ID AND meta_key = 'daily-activity' LIMIT 1) AS daily_activity, (SELECT meta_value FROM wpux_usermeta WHERE user_id = users.ID AND meta_key = 'kcal_with_active' LIMIT 1) AS kcal_with_active, orders.kcal_last_month, orders.class_last_month, (SELECT meta_value FROM wpux_usermeta WHERE user_id = users.ID AND meta_key = 'wpux_capabilities' LIMIT 1) AS role_color, (SELECT meta_value FROM wpux_usermeta WHERE user_id = users.ID AND meta_key = 'workout_class' LIMIT 1) AS workout_class, orders.maraphon_member_month, orders.director_comment FROM wpux_orders orders, wpux_users users WHERE orders.paid = '1' AND orders.maraphon_member_month = '10.2020' AND orders.user_email = users.user_email AND orders.maraphon_next_month LIKE '%марафон%' ORDER BY last_name
Мне нужно вывести таблицу, где основной массив данных сортируется по условию orders.maraphon_member_month = '10.2020',
а столбцы orders.kcal_last_month и orders.class_last_month "присоединились" к участнику по условию orders.maraphon_member_month = '09.2020'
Другими словами: заказчик хочет в текущем периоде видеть результаты участников в предыдущем периоде.
Пробовал решить через Count - вывел столбики, но получил нули, выводил через вложенный select - тоже получил нули.
Начни с простого запроса по нужной сортировке, после чего будешь добавлять остальные параметры.
Упрости выеди требуемый минимум, что бы не было лишних параметров и шума. И уже после пробуй что то добавлять.
Большое спасибо тебе за ответ. Решил вопрос на stackoverflow за пару часов упростив задачу - это действительно единственный выход.
Задача:
Из таблицы результатов взвешивания юношей, мне нужно вывести их результаты за текущий период с появлением нового столбца "Вес в прошлом периоде".
Ответ:
select t1.*, t2.weight_now as weight_before from table t1 left join table t2 on (t2.id = t1.id and t2.period = PERIOD - '1month') where t1.period = PERIOD
Где:
table t2 - это псевдоним основной таблицы для join'a,
t2.period = PERIOD - '1month' - это проверка указанной разности в рамках синтаксиса данной СУБД
рад за тебя!