Проблема с заявлением о случае MYSQL при объединении таблицы

#mysql #sql

#mysql #sql

Вопрос:

У меня есть два стола под названием history и updates . Если необходимо обновить значения таблицы истории, то обновленные значения вставляются в таблицу обновления с Key_id помощью .

Key_id сопоставлено со столбцами таблицы истории.

Здесь таблица истории содержит start_date и close_date . Когда нам нужно обновить конкретную строку таблицы истории start_date , предположим , что идентификатор таблицы истории 243247 равен, и start_date его нужно обновить как « 2021-11-02 затем идентификатор таблицы обновления будет автоматически сгенерирован, поле new_value равно» 2021-11-02 и Key_id 1

  • Key_id = 1 означает дату начала
  • key_id = 4 означает дату закрытия

Пожалуйста, посмотрите на изображения ниже

Таблица Истории

введите описание изображения здесь

Таблица обновлений

введите описание изображения здесь

Вопрос: Мне нужно получить все записи с history таблицей, если таблица обновления содержит значения, связанные с таблицей истории, то нужно получить только последнее значение и попасть только в одну строку в таблице истории

Для примера таблицы истории в первой строке у нас есть 5 обновленных значений в таблице обновлений. Мне нужно присвоить последние обновленные значения(оба start_date и close_date ) первой строке таблицы истории.

Вот запрос, который я пробовал

 SELECT ch.id,   (CASE cu.key_id  when 1  then cu.new_value  else ch.start_date  END)AS start_date,    (CASE cu.key_id  when 4   then cu.new_value   else ch.close_date  END)AS close_date     FROM history ch  LEFT JOIN _updates cu   ON ch.id = cu.history_id   group by ch.id  ORDER BY cu.id DESC;  

My issue is, this query return only single value from update table. I need to get both updated latest values in a single row . Please tell me how to resolve this issue