Kак правильно использовать входные данные во вставке?
Как можно использовать входные данные для заполнения ячеек?
Вот мой запрос:
INSERT INTO storage_deposits (user_id, user_name, cashier) VALUES (
'781776587', 'MrParabellum888', (
SELECT storage_requests.club_nick
FROM storage_requests
WHERE storage_requests.username = user_name));
Мне нужно заполнить ячейку cashier данными из таблицы storage_requests, если в столбце username есть user_name, который имеет значение MrParabellum888.
Ответы (1 шт):
Автор решения: 0xdb
→ Ссылка
Вот тут:
[...] WHERE storage_requests.username = user_name
----^^^^^^^^^
столбец user_name в подзапросе неизвестен и будет получена ошибка:
Unknown column 'user_name' in 'where clause'
Надо указать напрямую значение:
[...] WHERE storage_requests.username = 'MrParabellum888'
Посмотрите на воспроизводимом примере, как можно сделать:
create table t1 (id integer, t2id integer, name varchar(8));
create table t2 (id integer, name varchar(8));
insert into t2 values (1, 't2 name1');
insert into t2 values (2, 't2 name2');
insert into t1 (id, t2id, name)
values (1, 1, (select name from t2 where t2.id = t2id));
Unknown column 't2id' in 'where clause'
insert into t1 (id, t2id, name)
values (1, 1, (select name from t2 where t2.id = 2));
insert into t1 (id, t2id, name)
select 2, id, name from t2 where t2.id = 2;
select * from t1;
id t2id name
-- ---- --------
1 1 t2 name1
2 2 t2 name2