Имя: Пароль:
1C
1С v8
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)  Отличный вариант! Что смущает?