Тонкая выборка, не могу составить запрос.

silvek

Новичок
Тонкая выборка, не могу составить запрос.

Добрый вечер!

Опишу задачу:
1. две таблицы, я провожу выборку по одной(select ... where):

select * from table1 where id>2

2. из второй я должен выбрать только соответствующие первой строки:

select * from table1 left join table2 on table1.id=table2.id where table1.id>2

или

select * from table1, table2 where table1.id=table2.id and table1.id>2

3. для каждой строки из table1 я должен выбрать не более 2 соответствующих строк из table2.

вот здесь я не могу составить запрос.
Прошу помочь.


Спасибо.
 

prolis

Новичок
что-то типа этого вернёт не более двух строк на каждую группу:
[sql]
select * from table2,
(
select parent_id, min(child_id) mn, max(child_id) mx from table2
group by parent_id
) grp
where table2.child_id=grp.mn
or (table2.child_id=grp.mx and grp.mx<>grp.mn)
[/sql]
 
Сверху