Обновить столбцы таблицы 1 в зависимости от того, существует ли имя столбца как значение в другой таблице.MySql

Форум по Mysql
Ответить
Anonymous
 Обновить столбцы таблицы 1 в зависимости от того, существует ли имя столбца как значение в другой таблице.

Сообщение Anonymous »

Я пытаюсь найти эффективный способ сделать это, желательно с помощью одного запроса MySQL. У меня есть две таблицы, которые выглядят примерно так (я упростил, как мог):

Код: Выделить всё

CREATE TABLE `table1` (
`model` varchar(32) CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci NOT NULL DEFAULT '',
`A` varchar(2) CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci DEFAULT NULL,
`B` varchar(2) CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci DEFAULT NULL,
`C` varchar(2) CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci DEFAULT NULL,
`D` varchar(2) CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci DEFAULT NULL,
`E` varchar(2) CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci;
ALTER TABLE `table1`
ADD PRIMARY KEY (`model`),
ADD UNIQUE KEY `RSR_Stock_Number` (`model`);

Код: Выделить всё

CREATE TABLE `table2` (
`id` int NOT NULL,
`model` varchar(64) COLLATE utf8mb3_unicode_ci NOT NULL,
`value` varchar(2) COLLATE utf8mb3_unicode_ci NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci;
ALTER TABLE `table2`
ADD PRIMARY KEY (`id`),
ADD KEY `model` (`model`),
ADD KEY `value` (`value`);
ALTER TABLE `table2`
MODIFY `id` int NOT NULL AUTO_INCREMENT;
Данные для обеих таблиц предоставлены мне, и таблицы используются для других целей, поэтому в идеале я бы не менял их макет. model в обеих таблицах будет реляционным столбцом (или как бы он ни назывался). Значениями value в table2 будут A, B, C, D или E, и мне нужно обновить соответствующий столбец в table1 на Y, если значение value существует в table2 для этой модели. Например: (до):



модель
A
B
C
D
E




модель1







модель2







модель3







модель4









id
модель
значение




1
модель1
A


2
модель1
C


3
модель2
D


4
модель3
A


5
модель3
B


6
модель3
E


7
model4
E


(конечный результат):



модель
A
B
C
D
E




модель1
Д

Д




модель2



Д



модель3
Д
Д


Д


model4




Y



Надеюсь, то, о чем я спрашиваю, имеет смысл. Я знаю, что могу выполнить несколько запросов, по одному для каждого столбца, но столбцов десятки, и я надеялся найти один запрос, который справится с этой задачей. Заранее спасибо.

Подробнее здесь: https://stackoverflow.com/questions/798 ... lue-in-ano
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «MySql»