これに沿ってSQLを構築したいが、sqluを使用しないでください。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
用がスリックの機能はありますか?私は再び私のスリックコードを再訪する際のおかげ
アップデート1
は、私は自分の過ちを実現しました。私が設定した誤ったアラームについてお詫びしたい。これは答えではなく、誰かが私の間違いを是正するために助けてくれることを願っています。当面は、SlickのプレーンなSQLを使用して作業を続けています。
私が構築したスリッククエリは機能しませんでした。それは私が望むSQLに近いものでした。私がやったことは、私はfilterNot
はSQL not exists
を生成しない気づく、
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"))
ました。これが私を失った部分です。
ご質問にサンプルデータが表示されていることをお勧めします。 –
何を試しましたか?あなたはスリックがそれらをサポートしていないと思うのは何ですか?そして、http://stackoverflow.com/questions/18864351/scalatra-slick-and-insert-if-not-existsとhttps://groups.google.com/forum/#!topic/scalaquery/Ai8gzwMsKeg –
inSetがありますスリックの演算子。それはあなたが欲しいものかどうかわからない – pedrorijo91