Как исправить оператор обновления с помощью функции max в предложении set

Вы можете присоединиться к двум коллекциям в Монго, используя поиск, который предлагается в версии 3.2. В вашем случае запрос будет

db.comments.aggregate({
    $lookup:{
        from:"users",
        localField:"uid",
        foreignField:"uid",
        as:"users_comments"
    }
})

, или вы также можете присоединиться к пользователям, тогда будет небольшое изменение, как указано ниже.

db.users.aggregate({
    $lookup:{
        from:"comments",
        localField:"uid",
        foreignField:"uid",
        as:"users_comments"
    }
})

Он будет работать так же, как левое и правое соединение в SQL.

1
задан scsimon 17 January 2019 в 19:40
поделиться

1 ответ

Это может быть достигнуто с помощью CTE, оконной функции, подобной row_number(), outer apply, или просто с помощью производной таблицы, которая, вероятно, менее запутана для вас. Это то, что у вас изначально было, но вы забыли также вернуть столбец oggetto из вашей производной таблицы, поэтому вы не смогли join на ней получить ошибку.

update uo
set uo.trasco_oggetto_pratica = tqi.OGGETTO_PRATICA
from utilizzi_oggetto uo
inner join 
    (select 
        max(OGGETTO_PRATICA) OGGETTO_PRATICA, 
        OGGETTO 
     from trasco_quadri_imm 
     group by OGGETTO) tqi on 
    tqi.OGGETTO = uo.OGGETTO 
0
ответ дан scsimon 17 January 2019 в 19:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: