【发布时间】:2011-06-24 20:13:56
【问题描述】:
我想从表格中选择一行,其中包含某些条件和某些参数 x(这是字符串)的最大值。我目前正在做:
SELECT FROM myTable mm
WHERE mm.userId = :userId
AND x = (
SELECT MAX(x)
FROM myTable m
WHERE m.userId = :userId
AND (m.to = :contactNumber OR m.from = :contactNumber)
AND ...
)
我不确定 inno db 将如何以最佳方式执行此查询,但需要帮助改进此查询。我正在使用休眠。
【问题讨论】:
-
所以 X 是硬连线字符串而不是来自 mm 的列?这对我来说没有意义。如果您加入了表格,您可以使用 having 子句(如果支持)来比较您的最大值
-
x 也是 myTable 的一列(mm 和 m 只是别名)
标签: sql performance hibernate optimization