2013-11-27 4 views
0

У этого MySQL запросаMysql дизайн запроса необходима помощь

SELECT CE.codreg, CO.id FROM table1 CE left join table2 CO ON CE.codreg=CO.registro ORDER BY CE.codreg ASC 

Моя проблема заключается в том, что в table2 может иметь более одной строки для одной CE.codreg и нужно выбрать только тот, который имеет максимальный CO.id строк для этого CE.codreg

Как я мог это сделать?

+0

Посмотрите, этот вопрос задают около десятка раз в день. Это немного скучно. – Strawberry

+0

Посмотрите мой последний ответ на комментарий Bushan. ;) – Hanzo

+0

Да, Бхушану было бы неплохо почитать некоторые недавние подобные темы! – Strawberry

ответ

2

Попробуйте это:

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 
+0

Привет, первое спасибо, но с этим только выбирает строки, которые соответствуют таблице2, но мне нужно, чтобы выбирали все регистры таблицы1, а если в таблице 2 есть совпадение (левое соединение), выбирается макс. Спасибо – Hanzo

+0

@Hanzo Пожалуйста, см. 'Edit1', и дайте мне знать, если это не работает. Я пробовал это в oracle10. – Bhushan

+0

Но это только выбирает max CO.id строк, но мне нужно, чтобы «SELECT CE.codreg, CO. *» Все поля CO, что id max (id). Спасибо – Hanzo

Смежные вопросы