powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Записать результат SELECT в "переменную" для дальнейшего использования в других запросах
2 сообщений из 2, страница 1 из 1
Записать результат SELECT в "переменную" для дальнейшего использования в других запросах
    #39711720
wlad1164
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день! Прошу не пинать, в SQL новичек.

С горем пополам составил запрос который выводит необходимые мне данные в виде таблицы, но даже закрытыми глазами видно какой он кривой.
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
select 
public.sduser.ciid,public.sduser.lastname,public.sduser.firstname,public.sduser.middlename,
public.aaacontactinfo.landline,public.aaacontactinfo.mobile,
public.requester.attribute_1501,public.sduser.userid
FROM 
public.aaacontactinfo,public.sduser,public.requester 
where 
public.aaacontactinfo.contactinfo_id=(SELECT user_id FROM aaauser WHERE first_name='АЗК-45') and 
public.sduser.userid=(SELECT user_id FROM aaauser WHERE first_name='АЗК-45') and 
public.requester.ciid=(SELECT ciid From public.sduser WHERE public.sduser.userid=(SELECT user_id FROM aaauser WHERE first_name='АЗК-45'))



Первое что бросается в глаза и на мой неумелый взгляд стоит убрать трижды выполняемый поздапрос (SELECT user_id FROM aaauser WHERE first_name='АЗК-45')

если расскажите как это запрос сократить и упростить буду очень благодарен.

Ну а пока что для меня главный вопрос как записать результат выполнения подзапроса SELECT user_id FROM aaauser... в переменную для дальнейшего использования.

Ссылки на инструкции для чайников приветствуются
...
Рейтинг: 0 / 0
Записать результат SELECT в "переменную" для дальнейшего использования в других запросах
    #39711928
sereginseregin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Для начала, перемести подзапрос в WITH . Вместо "=" желательно IN (или =ANY()) использовать, так как подзапрос может вернуть несколько значений user_id.
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
WITH
  users AS  (SELECT user_id FROM aaauser WHERE first_name='АЗК-45')
SELECT 
public.sduser.ciid,public.sduser.lastname,public.sduser.firstname,public.sduser.middlename,
public.aaacontactinfo.landline,public.aaacontactinfo.mobile,
public.requester.attribute_1501,public.sduser.userid
FROM 
public.aaacontactinfo,public.sduser,public.requester 
where 
public.aaacontactinfo.contactinfo_id IN (SELECT user_id FROM users) 
and public.sduser.userid IN (SELECT user_id FROM users) 
and public.requester.ciid=(SELECT ciid From public.sduser WHERE public.sduser.userid IN (SELECT user_id FROM users))



Но что это, после WHERE написано??? Смысла я не понял.
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Записать результат SELECT в "переменную" для дальнейшего использования в других запросах
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]