我在 sqlite 数据库上使用 scalaquery(使用zentus jdbc 驱动程序),但是当我使用左连接进行选择时,出现以下异常:
Caused by: java.sql.SQLException: unrecognized token: "{"
at org.sqlite.DB.throwex(DB.java:288)
at org.sqlite.NativeDB.prepare(Native Method)
at org.sqlite.DB.prepare(DB.java:114)
at org.sqlite.PrepStmt.<init>(PrepStmt.java:37)
at org.sqlite.Conn.prepareStatement(Conn.java:231)
at org.sqlite.Conn.prepareStatement(Conn.java:224)
at org.scalaquery.session.Session$class.prepareStatement(Session.scala:25)
at org.scalaquery.session.BaseSession.prepareStatement(Session.scala:92)
at org.scalaquery.StatementInvoker.results(StatementInvoker.scala:59)
...
我的查询是:
val qSong = for{
Join(song,score) <- Songs leftJoin Scores on (_.hash is _.hash)
__ <- Query orderBy song.title
} yield song.title ~ song.difficulty ~ song.level ~ song.mode ~ score.perfect ~ score.great
当我打印生成的查询时,它给了我这个:
SELECT "t2"."title","t2"."difficulty","t2"."level","t2"."mode","t3"."perfect","t3"."great" FROM {oj "song" "t2" left outer join "score" "t3" on ("t2"."hash"="t3"."hash")} ORDER BY "t2"."title"
它似乎来自{oj
驱动程序无法处理的部分。那么有没有办法在没有oj
关键字的情况下进行左连接?还是有其他司机处理它?
谢谢。