У меня есть приведенные ниже пользователи и информация о сети в таблице USER. Я хотел бы получить всех пользователей для данного NetworkID.
ID Name Value Owner
1 UserID 123 111
2 NetworkID 567 111
3 FName ABC 111
4 LName BCD 111
5 UserID 234 222
6 NetworkID 567 222
7 FName DEF 222
8 LName EFG 222
9 UserID 345 333
10 NetworkID 567 333
11 FName GHI 333
12 LName HIJ 333
Ниже приведен запрос Self Join, который я написал для достижения ожидаемого набора результатов
select distinct U1.value NetworkID
, U2.value Users
from User U1
join User U2 on U2.owner = U1.owner and U2.name = 'UserID'
where U1.name = 'NetworkID' and U1.value = '567'
Ожидаемый результат
NetworkID Users
567 123
567 234
567 345
Объем таблицы очень большой, и для получения результатов с помощью этого самостоятельного объединения требуется очень много времени. Исходя из ограничений БД, я не могу вносить изменения в существующую схему (добавление индексов). Мне нужно предложение о том, как этот запрос может быть эффективно переписан для достижения того же набора результатов.