|
SQL как получить поле через 2 точки? |
☑ |
0
vde69
модератор
07.06.17
✎
09:44
|
есть запрос
FROM CurrentPackages
LEFT JOIN KeyValues AS Tab_Key
ON CurrentPackages.ID_Key = Tab_Key.ID
в нем нужно получить поле из таблицы RecordType связанной по ID с таблицей KeyValues
что-то не соображу куда приткнуть...
LEFT JOIN RecordType AS Tab_Type
ON (Tab_Key.ID_Type = Tab_Type.ID)
есть вариант сделать через вложенный (вложенный - это основной, а мой джойн делать к вложеному), подозреваю есть еще варианты запихнуть наоброт все внутрь, или сделать через времянку...
чего будет лучше?
|
|
1
Fram
07.06.17
✎
09:46
|
(0) прямо к первому запросу и прикрути. в чем проблема то? будут тормоза, тогда уже будешь оптимизировать
|
|
2
vde69
модератор
07.06.17
✎
09:47
|
(1) ну у меня в таблицах будут миллионы записей...
|
|
3
vde69
модератор
07.06.17
✎
09:49
|
в принципе работает, но сомнения остаются...
FROM CurrentPackages
LEFT JOIN KeyValues AS Tab_Key
ON ( CurrentPackages.ID_Key = Tab_Key.ID
AND CurrentPackages.ID_Source = Tab_Key.ID_Source
AND CurrentPackages.ID_Destination = Tab_Key.ID_Destination)
LEFT JOIN [RecordType] AS Tab_Type
ON ( Tab_Key.ID_Type = Tab_Type.ID)
|
|
4
Fram
07.06.17
✎
09:51
|
(2) если будут индексы по ID, не должно быть проблемой.
зная размеры таблиц и размеры парных соединений, можно поиграться вложенными запросами
|
|
5
Вафель
07.06.17
✎
10:44
|
А в чем проблема то? Джойн не обязан быть именно к основной таблице
|
|
6
VladZ
07.06.17
✎
11:28
|
(3) Отличный вариант! Что смущает?
|
|