Попробуйте это:
SELECT CE.codreg, CO.id
FROM table1 CE left join table2 CO ON CE.codreg=CO.registro
where CO.id=(select max(I.id) from table2 I where I.registro=CO.registro)
ORDER BY CE.codreg ASC
Edit1
Попробуйте это, если вы хотите, чтобы строки из table1, даже если нет записи в table2
SELECT CE.codreg, (select max(I.id) from table2 I where I.registro=CO.registro)
FROM table1 CE left join table2 CO ON CE.codreg=CO.registro
ORDER BY CE.codreg ASC
Edit2
Edit1 вернет строку для каждой записи в table2, чтобы избежать этой альтернативы.
select CE.codreg, (select max(I.id) from table2 I where I.registro=CE.registro)
FROM table1 CE
ORDER BY CE.codreg ASC
Edit3
Попробуйте это:
select SELECT CE.codreg, CO.*
FROM table1 CE left join (select * from table2 I where I.id=(select max(I2.id) from table2 I2 where I2.registro=I.registro)) CO ON CE.codreg=CO.registro
ORDER BY CE.codreg ASC
Посмотрите, этот вопрос задают около десятка раз в день. Это немного скучно. – Strawberry
Посмотрите мой последний ответ на комментарий Bushan. ;) – Hanzo
Да, Бхушану было бы неплохо почитать некоторые недавние подобные темы! – Strawberry