RethinkDB - Левое соединение, где connected_table.identifier имеет значение null?

У меня есть две таблицы в базе данных RethinkDB, которые представляют отношение «один ко многим». Рассмотрим следующие две таблицы:

t1
ParentId    Name
1           lorem
2           ipsum
3           dotor
4           sit
5           amet

t2
ChildId ParentId    ChildName
1       1           something
2       3           random
3       5           here

На t1 ParentId является первичным ключом, а на t2 есть вторичный индекс на ParentId. Я хочу выяснить, у кого из родителей нет ребенка. Операция в SQL (а точнее MSSQL) выглядит так:

SELECT t1.*
FROM t1
LEFT OUTER JOIN t2 ON t2.ParentId = t1.ParentId
WHERE t2.ChildId IS NULL

Results:
ParentId    Name
2           ipsum
4           sit

Как я могу добиться такого же результата в RethinkDB? Спасибо!


person ambient    schedule 26.04.2015    source источник


Ответы (1)


Я бы сделал это так:

r.table('t1').filter(function(parent) {
  return r.table('t2').get_all(parent('ParentId'), {index: 'ParentId'}).count().eq(0);
})
person mlucy    schedule 26.04.2015