Bunun için bir SQL oluşturmak istiyorum ama sqlu kullanmamaya çalışıyorum. SQL için Slick işlevi var
select el.oid, el.name, el.res_cat from el
left join bk on (el.cat = bk.cat and bk.oid=100)
where not exists (select 1 from dates bd where
el.oid=bd.lots_oid and bd.bk_oid = bk.oid) and el.e_oid=bk.e_oid
SQL
exists
veya
not exists
orada Kaygan fonksiyonlar mı? Ben yine benim Kaygan kod revisited sayesinde
Güncelleme 1
ben hatalar gerçekleşmiştir. Belirlediğim yanlış alarmdan dolayı özür dilemek istiyorum. Bu bir cevap değil ve umarım birisi hatalarımı düzeltmeme yardımcı olabilir. Şu an işime devam etmek için Slick'in sade SQL'i kullanıyorum.
Oluşturduğum Slick sorgusu çalışmadı. İstediğim SQL'e yakındı. Benim yaptığım
val elQuery = elTable.joinLeft(bkTable)
.on((el, bk) => el.cat === bk.cat && bk.oid === 100)
val query = for {
a <- elQuery if bdTable.filterNot(bd => a._2.map(_.oid === bd.bkOid).isDefined && a._1.oid === bd.elOid).exists
} yield a
finalQuery.result.statements.foreach(x => Logger.debug(s"xx => $x"))
Ben
filterNot
bir SQL
not exists
oluşturmaz fark oldu. Bu beni kaybeden diğer bölüm.
Sorunuzdaki bazı örnek verileri görmek güzel olurdu. –
Ne denediniz? Slick'in onları desteklemediğini düşünmene sebep olan nedir? Ve http://stackoverflow.com/questions/18864351/scalatra-slick-and-insert-if-not-exists ve https://groups.google.com/forum/#!topic/scalaquery/Ai8gzwMsKeg –
bir inSet var Slick operatör. – pedrorijo91