#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