У меня есть четыре разные таблицы, которые просто описываются следующим образом:
Пользователь
user_id
user_name
user_type
user_type_id
user_type
данные
user_id
user_type_id
import_user_type
типа
Имя пользователя
Я пишу хранимую процедуру для заполнения таблицы данных статистикой. Это с пользовательской таблицей, я выполняю следующее:
Строки в таблице «data» существуют после добавления в нее «пользовательских» данных следующим образом.
INSERT INTO data (user_id)
SELECT user.user_id
FROM user
INNER JOIN import_data
ON user_id
WHERE import_data.station_id = user.user_name;
Когда я хочу добавить тип пользователя в таблицу данных, я сталкиваюсь с проблемой, когда для обновления требуется указать только одну строку и выбрать:
UPDATE data SET user_type_id = (
SELECT user_type.user_type_id
FROM user_type
INNER JOIN import_user_type
ON user_type_id
WHERE import_user_type.acces = user_type.user_type
LIMIT 1
);
Целью этого запроса UPDATE является добавление user_type для каждого пользователя, но они расположены в трех разных таблицах.
Как я могу обновить каждую строку таблицы «data» с помощью «user_type_id» каждого «user_id», когда тип и пользователь находятся в 2 разных таблицах?