У меня есть две таблицы (это только упрощенные версии):SQL-запрос - сделать условия условными?
`Locations`:
id city country area
-- ---- ------- ----
71 C X E
72 C B E
73 C F G
74 L X E
75 M N O
76 M N E
`Findings`:
ID city country area resultVM
-- ---- ------- ---- --------
18 empty
19 C lam
20 X lam8
21 E pdg4
Теперь я хочу написать вставку, которая заполняет третью таблицу, в соответствии с данными в этих двух. Он должен содержать все идентификаторы из таблицы местоположения один раз (Summed.locations_id - это ссылка на Locations.id, очевидно) и сопоставленный результатVM из таблицы «Выводы». Результат должен быть:
`Summed`:
locations_id resultVM
------------ --------
71 lam
72 lam
73 lam
74 lam8
75 empty
76 pdg4
Критерии: попробуйте сначала соответствие город, чтобы найти resultVM в таблице выводах, если нет результата, то не в той же стране, то область, и, наконец, если нет результатов в любом случае - пустая строка, в которой не заполняется ни один город/страна/область.
В настоящее время я делаю это с 4 вставками/обновлениями дубликатов ключей, но так как таблицы очень большие, что занимает много времени. Кто-нибудь знает, может ли это быть сделано в одном обновлении/вставке/что-нибудь (в MySQL)? Спасибо!
Также работает очень хорошо, и в то время как я буду использовать @ wchiquito (немного более высокая производительность), вы ответили сначала так, ответ твой. Большое спасибо за Вашу помощь! :) – empir07
yup вместо 'case when' use' COALESCE' –