0

myBatis マッパーに書いた単純な選択があります。

<select id="listAllOrders" parameterType="java.util.HashMap" resultMap="commonMaps.detailedOrderResultMap">

    select

    <include refid="commonSql.fragmentOrderFields" />,
    <include refid="commonSql.fragmentSummaryPriceInfoFields" />

    from graorder order 
          left outer join grasummarypriceinfo summarypriceinfo on order.totalPrice_id = summarypriceinfo.id

    <if test="userGroupId != null">
        where order.userGroupId = #{userGroupId}
    </if>

    order by order_lastUpdated desc

    <if test="limit != null">
        limit #{limit}
    </if>

</select>

このクエリを実行するときの不平は次のとおりです。

 ### Error querying database.  Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntax
ErrorException: You have an error in your SQL syntax; check the manual that corr
esponds to your MySQL server version for the right syntax to use near 'left oute
r join grasummarypriceinfo summarypriceinfo on order.totalPrice_id = su' at line
 33

私はただ落胆しています。選択にエラーが表示されません...

手がかりはありますか?

4

1 に答える 1

1

SQL キーワードorderをテーブル エイリアスとして使用しています。これにより、MySQL でエラーが発生します。たとえば、テーブルの 1 つで次のクエリを試してみました。

mysql> select order.film_id, order.title from film order 
       where order.film_id > 100 limit 4;

同じエラーが発生しました:

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'where order.film_id > 100 limit 4' at line 1

于 2012-07-11T02:53:43.043 に答える