У меня есть две таблицы, одна из которых содержит столбец строк и столбец идентификаторов строк, а другая пуста, но она будет содержать идентификаторы фотографий и идентификаторы строк.Если это помогает визуализировать вещи, они были созданы с помощью этих команд.
CREATE TABLE tag_ref (
tag_id SERIAL PRIMARY KEY,
tag_name VARCHAR(50) NOT NULL
);
CREATE TABLE tag (
tag_id INTEGER NOT NULL,
photo_id INTEGER NOT NULL
);
Пользователь предоставляет photo_id и tag_name.Мне нужно получить соответствующий tag_id и добавить строку в таблицу тегов.Я сделал пару попыток, но ни одна из них не сработала.
Попытка # 1 (при условии, что пользователь вводит photo_id 402 и tag_name "nature")
SELECT tag_id
FROM tag_ref
JOIN tag ON tag.tag_id = tag_ref.tag_id;
INSERT INTO tag (photo_id, tag_id)
WHERE 'nature' = tag_ref.tag_name
VALUES (402, tag_ref.tag_id);
ОШИБКА: pq: синтаксическая ошибка в или около "WHERE"
Попытка # 2
INSERT INTO tag (tag_id, photo_id)
SELECT tag_id, tag_name
FROM tag_ref
WHERE 'nature' = tag_ref.tag_name
VALUES (402, tag_ref.tag_id)
ОШИБКА: pq: синтаксическая ошибка в или около "VALUES"
Я все еще очень плохо знаком с реляционными базами данных, но мне кажется, что это не должно быть сложной операцией.Я даже близко подхожу?