Новости
Документация
Download
Webboard
Поиск
FAQ/ЧаВо
Обратная связь




MySQL.RU - Webboard



Вернуться
Выборка 1 к 2 (Дмитрий) 28/09/2009 - 09:09:13
      Re: Выборка 1 к 2 (bac) 28/09/2009 - 10:17:52
      Re: Выборка 1 к 2 (Дмитрий) 28/09/2009 - 10:33:21
      Re: Выборка 1 к 2 (bac) 28/09/2009 - 23:25:55

> Original message text:
> From: Дмитрий - 28/09/2009 - 09:09:13
> Subject:Выборка 1 к 2
> -----------------
> Добрый день!
>
> Опишу задачу:
> 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.
>
> вот здесь я не могу составить запрос. Реляционная модель поддерживает такие условия в одном запросе?
> Прошу помочь!
>
>
> Спасибо!
>


From: bac - 28/09/2009 - 23:25:55
Subject:Выборка 1 к 2
-----------------
create table table1 (
id integer auto_increment primary key
);
create table table2 (
id_t integer auto_increment primary key,
id integer
);

insert into table1 values
(null),
(null),
(null),
(null);

insert into table2 values
(null,1),
(null,1),
(null,1),
(null,2),
(null,2),
(null,4),
(null,4),
(null,4);
set @co:=0;
set @preId:=0;

select *
from table1
left join (
select id_t,id from (
select *, if(@preId=id,@co:=@co+1,@co:=1) c, if(@preId=id,0,@preId:=id) p
from table2
) sc
where c < 3
) s
using (id);


[Это сообщение - спам!]

Последние сообщения из форума

Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL, версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
 Имя:
 E-mail:
 Тема:
 Текст:
Код подтверждения отправки: Code
36259



РЕКЛАМА НА САЙТЕ
  Создание сайтов | |