







|
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,
версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
22220
|
|