Мультиидентификатор не может быть найден сообщение об ошибке?

Мне нужно иметь возможность добавлять строку «отзывы» в базу данных. Мне нужно работать с подзапросами. Мне нужно объединить «UserID» из таблицы «User» с «OutfitID» из столбца таблицы «Outfit». Таким образом, я могу сказать, какой отзыв принадлежит какому Пользователю и какой одежде.

Сначала я попробовал этот запрос:

SELECT Gebruiker.GebrID,Outfit.ID 
FROM Gebruiker 
INNER JOIN Outfit ON Outfit.GebrID = Gebruiker.GebrID 
WHERE Gebruiker.Alias = 'john'
INSERT INTO Review(GebrID,OutfitID,StukTekst) 
VALUES(Gebruiker.GebrID, Outfit.ID,'ziet er cool uit');

Теперь я хочу добавить данные в таблицу обзора, но получаю сообщение об ошибке:
Мультиидентификатор не может быть найден сообщение об ошибке?

Это моя диаграмма базы данных:
Мультиидентификатор не может быть найден сообщение об ошибке?

«Я должен работать с подзапросами», где подзапросы?

HoneyBadger 22.03.2022 14:48

@HoneyBadger, да, спасибо за напоминание. Я изменил его только на сервер sql.

Cezar P 22.03.2022 14:52

@HoneyBadger, у вас есть идеи, как я могу решить эту проблему?

Cezar P 22.03.2022 14:53

Насколько веселее был бы этот вопрос, если бы в вопросе было правильное описание базы данных, а не картинка ?. При использовании SSMS щелкните правой кнопкой мыши таблицу, «Создать таблицу как», «Создать в», «Новые окна редактора запросов» и скопировать/вставить оператор CREATE TABLE ..... было бы намного приятнее! ?

Luuk 22.03.2022 19:23
ReactJs | Supabase | Добавление данных в базу данных
ReactJs | Supabase | Добавление данных в базу данных
Это и есть ваш редактор таблиц в supabase.👇
Понимание Python и переход к SQL
Понимание Python и переход к SQL
Перед нами лабораторная работа по BloodOath:
0
4
42
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

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

Вы хотите получить значения от пользователя John, чтобы вставить их в Review.

Вы можете сделать это:

INSERT INTO Review(GebrID, OutfitID, StukTekst)
VALUES ((SELECT GebrID FROM Gebruikers WHERE Gebruiker.Alias = 'john'),
        (SELECT Outfit.ID FROM Outfit INNER JOIN Gebuikers ON Outfit.GebrID = Gebruikers.GebrID WHERE Gebruikers.Alias = 'john'),
        'ziet er cool uit'
       );

Теперь вы также используете подзапросы.

Более прямой способ сделать это — избежать предложения values и повторяющихся скалярных подзапросов:

INSERT INTO Review (GebrID, OutfitID, StukTekst)
SELECT Gebruiker.GebrID, Outfit.ID, 'ziet er cool uit'
FROM Gebruiker INNER JOIN Outfit ON Outfit.GebrID = Gebruiker.GebrID 
WHERE Gebruiker.Alias = 'john';

Что касается того, соответствует ли чье-то произвольное требование «подзапросов», неясно. Если этот запрос возвращает несколько строк, он вставит их все, если это не приведет к нарушению операции вставки.

Другие вопросы по теме