Я играю с mybatis и использую следующий код. Интересно, могу ли я посчитать, сколько записей в booking_records , используя функцию агрегирования. Я пробовал группы, но это не удается. Или мне нужно разделить его на 2 SQL запросов? Заранее спасибо.
Ниже мой код.
<resultMap id="BaseResultMap" type="Hotel">
<id property="id" column="id"/>
<result property="chiName" column="chiName"/>
<result property="engName" column="engName"/>
<result property="telephone" column="telephone"/>
<collection property="classes" column="id" ofType="Class" javaType="List">
<result property="id" column="id"/>
<result property="hotelId" column="hotelId"/>
<result property="className" column="className"/>
<result property="isActivate" column="isActivate"/>
<result property="totalRoom" column="totalRoom"/>
<result property="availableRoom" column="availableRoom"/>
<collection property="bookingRecords" column="id" ofType="BookingRecord" javaType="List">
<result property="id" column="id"/>
<result property="userId" column="userId"/>
<result property="classId" column="classId"/>
<result property="date" column="date"/>
<result property="isActivate" column="isActivate"/>
</collection>
</collection>
</resultMap>
<select id="filterHotel" resultMap="BaseResultMap">
SELECT hotels.*, classes.*, COUNT(booking_records.*) FROM hotels
LEFT JOIN classes ON (classes.hotelId = hotels.id)
LEFT JOIN booking_records ON (classes.id = booking_records.classId)
WHERE booking_records.date BETWEEN #{startDate} AND #{endDate}
GROUP BY booking_records.classId
</select>
Ошибка следующая
Error querying database.
Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:
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 '*) FROM hotels\n LEFT JOIN classes ON (classes.hotelId = hotels.id)\n