Вы можете присоединиться к двум коллекциям в Монго, используя поиск, который предлагается в версии 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.
Это может быть достигнуто с помощью 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