我想从临时表中选择值等于最大值的所有行。
临时表测试
id | value
1 | 7
2 | 6
3 | 7
预期结果:
id | value
1 | 7
3 | 7
我已经尝试了几件事,但到目前为止所有尝试(创建另一个具有相同内容的临时表除外)都失败了,因为“您不能在同一个查询中多次引用 TEMPORARY 表”。(来源:http ://dev.mysql.com/doc/refman/5.0/en/temporary-table-problems.html )。是否有可能以比复制表格及其内容更“优雅”的方式做到这一点?
到目前为止我测试过的内容:
SELECT table1.* FROM test table1 LEFT JOIN test table2 ON table1.value < table2.value
WHERE table2.value IS NULL;
SELECT * FROM test WHERE value = (SELECT MAX(value) FROM test);
这是我目前的解决方案:
CREATE TEMPORARY TABLE test2 (...);
INSERT INTO test2 SELECT * FROM test;
SELECT * FROM test WHERE value = (SELECT MAX(value) FROM test2);