select a_numbered.id, a_numbered.identifier, b_numbered.id from
(
select a.*,
case
when @identifier = a.identifier then @rownum := @rownum + 1
else @rownum := 1
end as rn,
@identifier := a.identifier
from a
join (select @rownum := 0, @identifier := null) r
order by a.identifier
) a_numbered join (
select b.*,
case
when @identifier = b.identifier then @rownum := @rownum + 1
else @rownum := 1
end as rn,
@identifier := b.identifier
from b
join (select @rownum := 0, @identifier := null) r
order by b.identifier
) b_numbered
on a_numbered.rn=b_numbered.rn and a_numbered.identifier=b_numbered.identifier