我正在寻找一个MySQL查询来提取值,如以下示例所示:
TABLE1:
ID name
25 ab
24 abc
23 abcd
22 abcde
21 abcdef
TABLE2:
ID ID_TABLE1 total
1 25 0
2 25 1
3 25 2
4 25 3
5 23 1
6 22 0
7 22 1
8 21 0
9 21 2
10 24 10
11 24 7
我想返回列(在中)的TABLE1
最大值小于3的所有行。因此结果应为:total
TABLE2
ID name
23 abcd
22 abcde
21 abcdef
我尝试了这个:
SELECT t1.*
FROM TABLE1 t1
INNER JOIN (
SELECT MAX( total ) AS max_total, ID_TABLE1
FROM TABLE2
GROUP BY total, ID_TABLE1
) t2
ON t1.ID = t2.ID_TABLE1
WHERE t2.max_total < 3
但这不是我想要的结果。
您的内部查询id_table
按总结果对结果进行分组。由于total
per的最大值total
是值本身,因此使内部查询变得毫无意义。只需total
从group by
子句中删除,就可以了:
SELECT t1.*
FROM TABLE1 t1
INNER JOIN (
SELECT MAX( total ) AS max_total, ID_TABLE1
FROM TABLE2
GROUP BY ID_TABLE1
) t2
ON t1.ID = t2.ID_TABLE1
WHERE t2.max_total < 3
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句