Я хочу построить SQL по этому вопросу, но не пытаюсь использовать sqlu.Функция Slick для SQL существует
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
или not exists
? Благодаря
Update 1
я понял свои ошибки, когда я снова повторно мой Slick код. Я хочу извиниться за ложную тревогу, которую я установил. Это не ответ, и, надеюсь, кто-то может помочь мне исправить мои ошибки. На данный момент я использую простой SQL Slick для продолжения моей работы.
Неверный запрос, который я построил, не работает. Это было близко к SQL, который я хотел. То, что я сделал,
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"))
filterNot
Я заметил, не генерирует SQL not exists
. Это другая часть, которая потеряла меня.
Было бы неплохо увидеть некоторые данные образца в вашем вопросе. –
Что вы пробовали? Что заставляет вас думать, что Слик не поддерживает их? И http://stackoverflow.com/questions/18864351/scalatra-slick-and-insert-if-not-exists и https://groups.google.com/forum/#!topic/scalaquery/Ai8gzwMsKeg –
есть inSet оператора в Slick. не уверен, что это то, чего вы хотите, но – pedrorijo91