|   |   | 
| 
 | Левое соединение с вложенным запросом. Не пойму, как работает... | ☑ | ||
|---|---|---|---|---|
| 0
    
        bvn-2005 19.12.19✎ 15:30 | 
        ТАкой запрос:
 ВЫБРАТЬ Сотрудники.Код КАК Код, Сотрудники.Наименование КАК Наименование, ВложенныйЗапрос.ВидОбразования КАК ВидОбразования, ВложенныйЗапрос.УчебноеЗаведение КАК УчебноеЗаведение ИЗ Справочник.Сотрудники КАК Сотрудники ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ ПЕРВЫЕ 1 ОбразованиеФизическихЛиц.Владелец КАК Владелец, ОбразованиеФизическихЛиц.ВидОбразования КАК ВидОбразования, ОбразованиеФизическихЛиц.УчебноеЗаведение КАК УчебноеЗаведение, ОбразованиеФизическихЛиц.Ссылка КАК Ссылка ИЗ Справочник.ОбразованиеФизическихЛиц КАК ОбразованиеФизическихЛиц УПОРЯДОЧИТЬ ПО Ссылка) КАК ВложенныйЗапрос ПО Сотрудники.ФизическоеЛицо.Ссылка = ВложенныйЗапрос.Владелец.Ссылка ГДЕ Сотрудники.Код = &Код Для одного сотрудника все нормально, а для другого возвращает ВидОбразования и УчебноеЗаведение NULL. Хотя данные точно есть... | |||
| 1
    
        dka80 19.12.19✎ 15:31 | 
        ВЫБРАТЬ ПЕРВЫЕ 1 - вернет какую-то одну случайную запись из базы, вообще никак не связанную с основным запросом     | |||
| 2
    
        pechkin 19.12.19✎ 15:31 | 
        где то во вложенном запросе пропущен фильтр по физлицу     | |||
| 3
    
        Широкий 19.12.19✎ 15:32 | 
        С чего ты решил что первая запись во вложенном это именно твой сотрудник :)     | |||
| 4
    
        pechkin 19.12.19✎ 15:32 | 
        (2) хотя нет - код вообще полное г.     | |||
| 5
    
        lodger 19.12.19✎ 15:33 | 
        (1) видимо, там есть люди с более чем 1 образованием и список двоился.
 решили через "Первые 1". неправильно. | |||
| 6
    
        bvn-2005 19.12.19✎ 15:36 | 
        "видимо, там есть люди с более чем 1 образованием и список двоился"
 Именно так. А как правильно? | |||
| 7
    
        dka80 19.12.19✎ 15:37 | 
        (6) разные способы есть. Например, можешь Группировки использовать, если приоритет не важен.     | |||
| 8
    
        kda26 19.12.19✎ 15:40 | 
        левое соединение с условием становиться внутренним соединением     | |||
| 9
    
        Престарелый Заяц 19.12.19✎ 15:41 | 
        (1) С чего ты взял, что он вернет случайную запись???     | |||
| 10
    
        dka80 19.12.19✎ 15:45 | 
        (9) ты можешь гарантировать, что сейчас тебе вернулось Номенклатура1 и через час или через день вернется также Номенклатура1?     | |||
| 11
    
        НЕА123 19.12.19✎ 15:48 | 
        ВЫБРАТЬ  ПЕРВЫЕ 1
 Сотрудники.Код КАК Код, Сотрудники.Наименование КАК Наименование, ОбразованиеФизическихЛиц .ВидОбразования КАК ВидОбразования, ОбразованиеФизическихЛиц .УчебноеЗаведение КАК УчебноеЗаведение ИЗ Справочник.Сотрудники КАК Сотрудники ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ОбразованиеФизическихЛиц КАК ОбразованиеФизическихЛиц ПО Сотрудники.ФизическоеЛицо.Ссылка = ОбразованиеФизическихЛиц .Владелец.Ссылка ГДЕ Сотрудники.Код = &Код | |||
| 12
    
        НЕА123 19.12.19✎ 15:49 | 
        * 
 .Ссылка убрать. | |||
| 13
    
        Престарелый Заяц 19.12.19✎ 15:59 | 
        (10) А кто может такое гарантировать если данные меняются? В подзапросе ВСЕГДА вернется первая ссылка, согласно правил сортировки ссылок, при чем тут номенклатура вообще?     | |||
| 14
    
        aleks_default 19.12.19✎ 16:03 | 
        Внутри вложенного запроса нужно просто сделать фильтр по физлицу     | |||
| 15
    
        НЕА123 19.12.19✎ 16:05 | 
        (14)
 + его только и оставить безо всяких там СОЕДИНЕНИЕ. | |||
| 16
    
        aleks_default 19.12.19✎ 16:06 | 
        Но ито таким образом вы просто получите то образование, которое было заведено для этого сотрудника раньше всех     | |||
| 17
    
        aleks_default 19.12.19✎ 16:07 | 
        (15)+1     | |||
| 18
    
        aleks_default 19.12.19✎ 16:10 | 
        (16) Имеется ввиду, если у одного сотрудника заведено несколько образований, т. е. несколько элементов справочника Образования физ лиц, то вы получите таким образом тот элемент из них, который был создан первым     | |||
| 19
    
        dot05 19.12.19✎ 16:13 | 
        божечки     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |