Если вы хотите, чтобы показать только один ряд, то попробуйте использовать LIMIT, как:
SELECT RV.duration,
P.expirytime
FROM rid_purchase_info_v64 AS P
INNER JOIN rid_video_asset_movievod AS RV
ON RV.rid = P.rid
WHERE RV.rid = 31041
LIMIT 1
Или, если вы хотите, чтобы получить наибольшее значение, которое вы могли бы использовать агрегатную функцию MAX():
SELECT MAX(RV.duration),
P.expirytime
FROM rid_purchase_info_v64 AS P
INNER JOIN rid_video_asset_movievod AS RV
ON RV.rid = P.rid
WHERE RV.rid = 31041
GROUP BY P.expirytime
Или наименьшее значение MIN():
SELECT MIN(RV.duration),
P.expirytime
FROM rid_purchase_info_v64 AS P
INNER JOIN rid_video_asset_movievod AS RV
ON RV.rid = P.rid
WHERE RV.rid = 31041
GROUP BY P.expirytime
Пожалуйста, пост (а) CREATE TABLE заявления и (б) INSERT INTO ... VALUES STA которые необходимы для воспроизведения ваших результатов. В противном случае людям будет сложно помочь вам. – Fabian
Можете ли вы сделать sqlfiddle –
Почему вы ожидаете получить только один результат, если у вас есть две подходящие строки? –