|  | как написать запрос, что бы первой таблице сопоставлялась только первая найденная запись | ☑ | 
    
        | 0
    
        Aydar   07.03.19✎ 09:51 | 
        как написать запрос, что бы первой таблице сопоставлялась только первая найденная запись из второй таблице?     |  | 
    
        | 1
    
        FIXXXL   07.03.19✎ 09:52 | 
        (0) хз что ты задумал
как вариант: сделай ВТ с ВЫБРАТЬ ПЕРВЫЕ 1, а уже потом соединяй ее со второй
 |  | 
    
        | 2
    
        Aydar   07.03.19✎ 10:00 | 
        (1) (1) например, есть две таблицы
 1-ая таблица
 Поле1 Поле2
 Знач1 20
 Знач2 30
 
 
 2-ая таблица
 Поле1 Поле2
 Знач1 100
 Знач1 500
 
 
 Допустим соединяю по Поле1 левым соединением
 результат будет:
 Поле1 Поле2
 Знач1 100
 Знач1 500
 Знач2 NULL
 Но мне нужно только значения первых сопоставленных, т.е.
 Поле1 Поле2
 Знач1 100
 |  | 
    
        | 3
    
        catena   07.03.19✎ 10:02 | 
        (2)"Первая" она какая? Сортировка есть в этой второй таблице?     |  | 
    
        | 4
    
        Aydar   07.03.19✎ 10:07 | 
        (3) первая наибольшее число из второй таблицы     |  | 
    
        | 5
    
        Aydar   07.03.19✎ 10:07 | 
        (4) *наибольшее число из первой таблицы     |  | 
    
        | 6
    
        catena   07.03.19✎ 10:11 | 
        (4)Не подходит выбор 100 из (100,500) в примере под определение "наибольшее", еще варианты?     |  | 
    
        | 7
    
        catena   07.03.19✎ 10:11 | 
        В общем, чтобы взять одно из нескольких, надо определиться, какое именно брать. Когда придумаете систему выбора, ее можно будет алгоритмизировать.     |  | 
    
        | 8
    
        Лодырь   07.03.19✎ 10:12 | 
        (5) Ну так сгруппируй предварительно таблицу2 по полю знач, использовав функцию МАКС(Поле2)     |  | 
    
        | 9
    
        azernot   07.03.19✎ 10:12 | 
        Сгруппировать результат соединения по полю 1 , с максимумом поля 2     |  | 
    
        | 10
    
        Лодырь   07.03.19✎ 10:14 | 
        ВЫБРАТЬ
Таб1.Знач КАК Знач,
 ВложенныйЗапрос.ПолеТаб2 КАК ПолеТаб2
 ИЗ
 Таб1 КАК Таб1
 ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
 Таб2.Знач КАК Знач,
 МАКСИМУМ(Таб2.ПолеТаб2) КАК ПолеТаб2
 ИЗ
 Таб2 КАК Таб2
 
 СГРУППИРОВАТЬ ПО
 Таб2.Знач) КАК ВложенныйЗапрос
 ПО Таб1.Знач = ВложенныйЗапрос.Знач
 |  |