Для первого вы можете сделать:
UPDATE table_1 SET colB=IF(colA=0, 'typeA', IF(colA>0, 'typeB', '???'));
Я не знаю, все ли в порядке, как вы указали в своем вопросе " и" typeB ", если colB> 0", потому что colB - это столбец, в который вы хотите записать.
Для второго вопроса вам следует использовать представление, чтобы имя пользователя находилось в таблице Docs
.В любом случае, чтобы обновить его, вы можете использовать следующее:
UPDATE Docs d SET Username=(SELECT Username FROM Users u WHERE u.UserID=d.UserId)
Вот как создать представление, содержащее имя пользователя:
CREATE VIEW Docs_view AS
SELECT Docs.*, Users.Username
FROM Docs
LEFT JOIN Users ON Docs.UserID=Users.UserID;
Сначала удалите столбец Username
из Docs
.
Теперь, когда вы хотите выбрать документы, вы также можете видеть имена пользователей:
SELECT * FROM Docs_view
А когда вы добавляете новую запись, вам нужно толькоукажите UserID
.