검색 할 SQL 컬럼이 여러 개 있습니다. 이건 내 SQL 문입니다 : 나는 검색 특정 mrModel 열 taht를에Group By의 MAX는 전체 행 데이터를 검색해야합니다.
SELECT b.iposx_model_id,
a.mrModel, MAX(a.mrRevision) as mrRevision, a.mrApprovedBy, ...
FROM mydb1.tbl_model_revision a
INNER JOIN mydb2.model_from_revision_process b
ON b.mrModel = a.mrModel
WHERE a.mrType = 1
GROUP BY a.mrModel
ORDER BY b.iposx_model_id ASC
이 내가를 쿼리하고있어 데이터입니다
,이 상태가 I 세 번째 행에 해당하는 최대 mrRevision으로 데이터를 가져와야합니다.
그러나 SQL 문을 실행할 때 최대 mrRevision은 2이고 3 행에서옵니다. 하지만 내가 얻은 다른 열 데이터는 2 행에서 가져온 것입니다. 예를 들어 mrApprovedBy는 10 대신 1035입니다. 왜 그런 일이 발생합니까? 작품은 대부분의 DB에서와 MySQL이의 최신 버전에 unpredicatble 결과를
을 생산하는 곳 때문에
, 다음이 아닌
을 사용할 수 없습니다에 의해 그룹의 사용 피 ossible. – Ravi
'내 쿼리에서 3 번째 행에 해당하는 최대 mrRevision으로 데이터를 가져와야한다고 나와 있습니다. '- 그건 약간 잘못되었습니다. 당신의 질의는'mrRevision'의 최대 값만을 반환합니다. 최대'mrRevision'에 해당하는 행을 얻으려면'WHERE' 절에서 지정해야합니다. – user5226582
내가 언급 한 것을 잊었을 때 그림은 특정 mrModel의 select 문일뿐입니다. 자, 맥스 (mrRevision)를 실행하면 가장 높은 mrRevision을 가지고 있기 때문에 그림의 세 번째 줄에있는 모든 데이터를 가져와야합니다. 맞습니까? 내가 잘못? –