我试图使用子查询从一个表中选择一些数据,主要目的是选择每个ID的最后一次出现(最后一个ligne =最大NULIGN),所以我使用了:
SELECT * FROM TABLE1 WHERE NULIGN= (SELECT DISTINCT MAX(NULIGN) FROM TABLE1 GROUP BY ID);
我收到以下错误:
单行子查询返回多个行。
那么,如何显示所有具有最大ligne数的事件?
最佳答案
或者,您可以使用join
SELECT a.*
FROM TABLE1 a
JOIN( SELECT ID,MAX(NULIGN) MAX_NULIGN
FROM TABLE1
GROUP BY ID
) b
ON a.ID = b.ID
AND a.NULIGN= b.MAX_NULIGN;
或将您的子查询设为相关子查询
SELECT *
FROM TABLE1 a
WHERE a.NULIGN= (SELECT MAX(NULIGN)
FROM TABLE1
WHERE ID = a.ID)
关于mysql - 从一个表中选择:单行子查询返回多个行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48059845/