Объединить 3 запроса в один в Informix SQL - PullRequest
0 голосов
/ 26 февраля 2019

У меня есть 3 sql запроса, которые я хотел бы объединить в один.

Я знаю значение 'UKLN_8945_UDP', которое я использую в 1-м запросе, этот 1-й запрос дает мне два значения, которые я не могу прочитатьпоэтому мне нужно выполнить 2 других запроса, чтобы вернуть значения, которые я могу прочитать.

Первый запрос -

run sql SELECT EMD.fkdevice,EMD.fkEnduser FROM extensionmobilitydynamic EMD WHERE EMD.fkdevice_currentloginprofile = (SELECT d1.pkid FROM device d1 WHERE d1.name = 'UKLN_8945_UDP')

. Этот запрос возвращает 2 значения: fkdevice: f3b95ea0-63f8-49d1-911f-cacdd68d0967 fkenduser: 5a71fc04-d348-8115-9ff9-ea78f38b06fc

2-й запрос использует fkdevice из 1-го запроса

run sql select D.name SEPDname from device D where D.pkid = 'f3b95ea0-63f8-49d1-911f-cacdd68d0967'

Этот запрос возвращает 1 значение: sepdname: SEP0057D2C01D0B

3-й запрос использует fkenduser из 1-го запроса

run sql select E.userid from enduser E where E.pkid = '5a71fc04-d348-8115-9ff9-ea78f38b06fc'

Этот запрос возвращает 1 значение: userid: UKLN

1 Ответ

0 голосов
/ 26 февраля 2019
SELECT   EMD.fkdevice
,        EMD.fkEnduser
,        D2.name
,        E.userid
FROM     device D1
JOIN     extensionmobilitydynamic EMD 
ON       EMD.fkdevice_currentloginprofile = D1.pkid
JOIN     device D2
ON       D2.pkid = EMD.fkdevice
JOIN     enduser E
ON       E.pkid = EMD.fkEnduser
WHERE    D1.name = 'UKLN_8945_UDP'
...