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




MySQL.RU - Webboard



Вернуться
Помогите разобратся с запросом. Ошибка логики (Ворон) 20/10/2005 - 23:55:59
      Re: Помогите разобратся с запросом. Ошибка логики (Dinky) 21/10/2005 - 00:12:40
      Re: Не работает. Помогите найти где ошибся. (Ворон) 21/10/2005 - 10:33:59
      Re: Маленькое уточнение. (Ворон) 21/10/2005 - 10:36:06
      Re: Не работает. Помогите найти где ошибся. (Dinky) 21/10/2005 - 20:19:08
      Re: Не работает. Помогите найти где ошибся. (Ворон) 21/10/2005 - 22:25:05
      Re: Не работает. Помогите найти где ошибся. (Ворон) 23/10/2005 - 15:16:51

> Original message text:
> From: Ворон - 20/10/2005 - 23:55:59
> Subject:Помогите разобратся с запросом. Ошибка логики
> -----------------
> Доброго времени суток.
> Есть три таблицы:
> -------
> Tabl_1
> -------
> norm_id
> Tabl_2_id
> Tabl_1_id
> -------
> Tabl_2
> -------
> Tabl_3_id
> std_id
> Tabl_2_id
> -------
> Tabl_3
> -------
> control
> Tabl_3_id
>
> Есть масив norm_id.
>
> 1. Я получаю из Tabl_1 все Tabl_2_id и Tabl_1_id где norm_id равно значениям масива. Tabl_1_id понядобятся в конце. Тут все ок.
>
> 2. Я получаю из Tabl_2 все Tabl_3_id где Tabl_2_id равны тем которые получены из прошлой таблицы.
>
> 3. Я должен составить запрос, который выдаст в первом столбце все Tabl_1_id выбраные на шаге 1, а во втором все control из Tabl_3, где Tabl_3 равно Tabl_3_id полученые на шаге 2.
> Количество значений колонок будут соответствовать 1:1.
>
>
> Для этого попробовал написать такой запрос:
> sql_q = "SELECT Tabl_1_id,control FROM Tabl_1,Tabl_3 WHERE ((Tabl_1_id=55)OR(Tabl_1_id=56)) and ((control_id=1)OR(control_id=3));"
>
> Но я явно что то недомудрил. Вместо 2х строк я получаю 4.
> Для каждого Tabl_1_id я получаю все controlы соответствующие каждому из control_id.
>
> Как мне исправится ?
> Как сделать такой запрос коректно ?
>
> С уважением. Ворон.
>


From: Ворон - 21/10/2005 - 10:33:59
Subject:Не работает. Помогите найти где ошибся.
-----------------
Не работает =(
На практике получился такой запрос:

SELECT t1.ph_f_control_comp_id,t3.control FROM ph_f_control_comp_t t1 INNER JOIN control_comp_t t2 ON t1.control_comp_id=t2.control_comp_id INNER JOIN control_t t3 ON t3.control_id=t2.control_id WHERE ((t3.control_id=3)OR(t3.control_id=1)) and ((t1.ph_f_control_comp_id=1)OR(t1.ph_f_control_comp_id=2));

,где
Tabl_1 :ph_f_control_comp_t
Tabl_1_id :ph_f_control_comp_id
Tabl_2 :control_comp_t
Tabl_2_id :control_comp_id
Tabl_3 :control_t
Tabl_3_id :control_id

Или, если смотреть на первый пост:

SELECT t1.Tabl_1_id,t3.control FROM Tabl_1 t1 INNER JOIN Tabl_2 t2 ON t1.Tabl_2_id=t2.Tabl_2_id INNER JOIN Tabl_3 t3 ON t3.Tabl_3_id=t2.Tabl_3_id WHERE ((t3.Tabl_3_id=3)OR(t3.Tabl_3_id=1)) and ((t1.Tabl_1_id=1)OR(t1.Tabl_1_id=2));


Помогите разобратся, что я сделал не так, пожалуста.




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

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

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



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