Я хочу группировать данные с максимально возможной контрактной_идностью относительно конкретного player_id. Это звучит достаточно просто, но он не работает должным образом.MYSQL Groupby и Orderby Query
SELECT distinct(f1.player_id), f1.contract_id,f1.feature_id
from (select p.player_id,p.player_name, p.player_no, CASE c.action
when 'submit' then 'تقديم'
when 'approve' then 'موافقة'
when 'reject' then 'رفض'
when 'object' then 'اعتراض'
when 'resubmit' then 'اعادة تقديم'
END as action, c.new_time, Case co.status
when 'free' then 'حر'
when 'active' then 'نشط'
when 'expired' then 'منتهي'
when 'loan' then 'معار'
when 'loan expire' then 'ااعارة منتهية'
END as status, co.contract_id,c.feature_id
FROM contract co
INNER JOIN player_profile p ON p.player_id = co.player_id
INNER JOIN new_request c ON c.contract_id = co.contract_id
INNER JOIN club cl ON co.club_id = cl.club_id
where co.reqeust_type='new'
) as f1
order by f1.player_id asc;
Набор данных: Полный набор данных
SELECT distinct(f1.player_id), f1.contract_id,f1.feature_id
from (select p.player_id,p.player_name, p.player_no, CASE c.action
when 'submit' then 'تقديم'
when 'approve' then 'موافقة'
when 'reject' then 'رفض'
when 'object' then 'اعتراض'
when 'resubmit' then 'اعادة تقديم'
END as action, c.new_time, Case co.status
when 'free' then 'حر'
when 'active' then 'نشط'
when 'expired' then 'منتهي'
when 'loan' then 'معار'
when 'loan expire' then 'ااعارة منتهية'
END as status, co.contract_id,c.feature_id
FROM contract co
INNER JOIN player_profile p ON p.player_id = co.player_id
INNER JOIN new_request c ON c.contract_id = co.contract_id
INNER JOIN club cl ON co.club_id = cl.club_id
where co.reqeust_type='new'
) as f1
group by f1.player_id
order by f1.player_id asc;
набор данных для запроса
Я хочу чтобы получить Player_ID 7 и контракт ID 301.
Что именно вы подразумеваете под этим, что он не работает должным образом? Pls обеспечивает ожидаемый результат и результат, возвращаемый двумя запросами! – Shadow
Обратите внимание, что DISTINCT не является функцией. – Strawberry