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




MySQL.RU - Webboard



Вернуться
Попмгите с выбором о уникальной записи. (Ворон) 23/10/2005 - 15:15:19
      Re: Попмгите с выбором о уникальной записи. (Dinky) 24/10/2005 - 19:09:37
      Re: Попмгите с выбором о уникальной записи. (Ворон) 25/10/2005 - 12:21:05
      Re: Попмгите с выбором о уникальной записи. (Dinky) 25/10/2005 - 23:12:36
      Re: Попмгите с выбором о уникальной записи. (Alexander) 27/10/2005 - 00:15:15

> Original message text:
> From: Ворон - 23/10/2005 - 15:15:19
> Subject:Попмгите с выбором о уникальной записи.
> -----------------
> Доброго времени суток.
> Есть забочий запрос:
>
> sql_q = "SELECT control_t.control_id, ph_f_control_comp_t.control_comp_id, control_t.control"
> sql_q = sql_q & " FROM ph_f_control_comp_t, control_comp_t, control_t"
> sql_q = sql_q & " WHERE ((Str(control_comp_t.control_id) = Str(control_t.control_id))"
> sql_q = sql_q & " AND (str(ph_f_control_comp_t.control_comp_id)=str(control_comp_t.control_comp_id))"
> sql_q = sql_q & " AND (ph_f_control_comp_t.norm_id = '" & veg & "')) GROUP BY control_t.control_id;"
>
> Но надо что бы в результате я получил только записи с уникальным полем control_t.control_id (остальные поля могут дублироватся, так что DISTINC не подходит).
> Насколько я понял такой результат я могу получит ь используя GROUP BY control_t.control_id.
> Но такой вот запрос не работает:
>
> sql_q = "SELECT control_t.control_id, ph_f_control_comp_t.control_comp_id, control_t.control"
> sql_q = sql_q & " FROM ph_f_control_comp_t, control_comp_t, control_t"
> sql_q = sql_q & " WHERE ((Str(control_comp_t.control_id) = Str(control_t.control_id))"
> sql_q = sql_q & " AND (str(ph_f_control_comp_t.control_comp_id)=str(control_comp_t.control_comp_id))"
> sql_q = sql_q & " AND (ph_f_control_comp_t.norm_id = '" & veg & "')) GROUP BY control_t.control_id;"
>
> Первый и второй запросы во время выполнения выглядят как :
> 1:
>
> SELECT control_t.control_id, ph_f_control_comp_t.control_comp_id, control_t.control FROM ph_f_control_comp_t, control_comp_t, control_t WHERE ((Str(control_comp_t.control_id) = Str(control_t.control_id)) AND (str(ph_f_control_comp_t.control_comp_id)=str(control_comp_t.control_comp_id)) AND (ph_f_control_comp_t.norm_id = '23'));
>
> 2:
>
> SELECT control_t.control_id, ph_f_control_comp_t.control_comp_id, control_t.control FROM ph_f_control_comp_t, control_comp_t, control_t WHERE ((Str(control_comp_t.control_id) = Str(control_t.control_id)) AND (str(ph_f_control_comp_t.control_comp_id)=str(control_comp_t.control_comp_id)) AND (ph_f_control_comp_t.norm_id = '23')) GROUP BY control_t.control_id;
>
> Если необходима структура таблиц, то вот она :
>
> Есть три таблицы:
> -------
> ph_f_control_comp_t
> -------
> norm_id
> control_comp_id
> ph_f_control_comp_id
> -------
> control_comp_t
> -------
> control_id
> std_id
> control_comp_id
> -------
> control_t
> -------
> control
> control_id
>
> Поможете разобратся в чем дело ?
>


From: Ворон - 25/10/2005 - 12:21:05
Subject:Попмгите с выбором о уникальной записи.
-----------------
как раз если надо уникальные значения то distinct очень даже подходит, только в select-e кроме control_t.control_id ничего не должно быть ;)
Если в SLECT больше ничего нет то он и подходит. Тут ты прав на все 100%
Только в SELECTе у меня не только он =(
Из трех полей control_t.control_id, ph_f_control_comp_t.control_comp_id, control_t.control
поля
control_t.control_id и control_t.control
будут часто дублироватся.
А мне нужно что бы в выборке было не больше 1 го control_t.control_id. Тоесть каждое значене столбца с control_t.control_id должно буть уникально.
control_t.control_id и control_t.control связваны. Поэтому они либо вместе дублируются либо вместе уникальны.

Насколько я понял этого сделать нельзя ?


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

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

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



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