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




MySQL.RU - Webboard



Вернуться
Повторяющиеся записи.... (MST) 27/05/2005 - 08:02:09
      Re: креатифф!!! (Alec) 27/05/2005 - 09:12:21
      Re: креатифф!!! (Dubrovsky) 27/05/2005 - 09:35:07
      Re: креатифф!!! (MST) 27/05/2005 - 10:27:52
      Re: фух (Alec) 27/05/2005 - 10:47:43
      Re: Афтар жжот (Валентин) 27/05/2005 - 10:51:18

> Original message text:
> From: MST - 27/05/2005 - 08:02:09
> Subject:Повторяющиеся записи....
> -----------------
> как сделать запрос вида:
> SELECT * FROM table WHERE `id`=12 or `id`=12 or `id`=12;
>
> и чтобы в данном случае результат был не в виде одной строки с id=12, а три строки с id=12?
>


From: MST - 27/05/2005 - 10:27:52
Subject:креатифф!!!
-----------------
Я понимаю ваше недоумение :)

у меня есть таблица, в которой собирается информация о подписках.
И таблица, где хранится информация о подписчиках.

Вот в таблице, где собирается информация о подписках, на одного человека может быть оформлена подписка несколько раз.

cards - таблица с данными о подписчиках
subs - таблица с подписками

cards: id(index), fio, address....
subs: id(index), cid(card id), period, year....

далее я выбираю все подписки за этот год:
select * from `subs` where `year`='2005';

мне нужно сформировать список подписчиков, которые подписаны в этом году по алфавиту fio

Для этого я на php во время первого запроса формирую второй запрос:

#$pol - это период подписки... формируется несколько раньше

$pr=mysql_db_query($base,"select * from `subs` where ($pol) and `year`='$year';");

$state="select * from `cards` where (";
$f=0;
while ($ref=mysql_fetch_object($pr)) {
if ($f!=0) { $zpt=" or "; } else { $f=1; }
#echo "$ref->cid<br>";
$state.="$zpt`id`='$ref->cid'";
}#endwhile
$state.=") order by `fio`;";

в итоге получается запрос вида:
$state="select * from `cards` where `id`=5 or `id`=6 or `id`=5... order by `fio`;"

вот так я сортирую подписчиков по алфавиту, основываясь на данных фактов подписок.

Но проблема в том, что в таблице cards поле id уникально, а в таблице subs поле cid не уникально и соответственно оно может повторяться.

В итоге, если подписок 340, из них 5 оформлено на одного человека, то запрос с сортировкой по алфавиту выдаст результат в 335 подпискичов.


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

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

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



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