Пожалуйста, помогите мне написать правильный запрос для нескольких таблиц. Мне нужно заменить все идентификаторы здесь из другой таблицы API json
Я пытаюсь сделать такой запрос
SELECT incident.`number`, `user`.first_name, (SELECT `user`.first_name from ITSM.`user` JOIN incident on `user`.sys_id = incident.id_created_by) as createdby
from ITSM.incident
JOIN ITSM.`user` on incident.id_caller = `user`.sys_id
;*
но это # не работает, я получил ошибку: Подзапрос возвращает более 1 строки
Как сделать правильный запрос?
Этот тоже не работает, та же ошибка:
SELECT incident.`number`, (SELECT user.first_name from ITSM.`user`, ITSM.incident WHERE user.sys_id = incident.id_created_by) as createdby
from ITSM.incident
JOIN ITSM.`user` on incident.id_caller = user.sys_id*
;
Пожалуйста, не публикуйте изображения текста — просто опубликуйте текст. Публикация только что сделанного снимка экрана ограничивает объем помощи, которую мы можем предложить, поскольку мы не можем скопировать текст и обработать запрос, используя ваши образцы данных со снимка экрана. Посмотрите, как создать минимальный воспроизводимый пример
Вам не нужен подзапрос. Просто обратитесь к исходной таблице каждого столбца в предложении select, здесь, если вам нужно 2 соединения с одной и той же таблицей, дайте им псевдоним и обратитесь к столбцам, используя этот псевдоним.
SELECT incident.`number`
, caller.first_name as caller_name
, creator.first_name AS createdby
FROM ITSM.incident
JOIN ITSM.`user` AS caller ON incident.id_caller = caller.sys_id
JOIN ITSM.`user` AS creator ON incident.id_created_by = creator.sys_id
номер Я предполагаю, что ваша логика соединения верна
Неа. этот запрос возвращает id_caller — пользователь, вызвавший этот инцидент. Я добавил новые скрины для моей темы, чтобы лучше описать
пытался ответить по телефону - не получилось - теперь ответ изменен
Пожалуйста, предоставьте более подробную информацию и уточните, что вы хотите сделать. Вы пишете «мне нужно заменить все идентификаторы», но вы пишете только запросы. Вы хотите заменить что-то или выбрать что-то? Не могли бы вы предоставить свои данные здесь dbfiddle.uk/?rdbms=mysql_8.0 или, по крайней мере, добавить необходимые команды SQL для создания ваших данных, таким образом, ваша проблема может быть воспроизведена? Спасибо.