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




MySQL.RU - Webboard



Вернуться
Объясните IF (CrowD) 19/11/2002 - 11:22:42
      Re: Объясните IF (Василий) 19/11/2002 - 19:44:15

> Original message text:
> From: CrowD - 19/11/2002 - 11:22:42
> Subject:Объясните IF
> -----------------
> Привет, All!
>
> что то мне не допетрить
> нужно внести изменения в table1 , если value2 из table2 равно value3 из table3 (table1,table2 и table3 связаны полем сonnect1(2,3) )
>
> у меня накидалось что то типа
> ~~~
> IF ((SELECT value2 FROM table2 WHERE connect2 = 1)=
> (SELECT value4 FROM table3 WHERE connect3 = 1))
> UPDATE table1 SET val1="val1",val2="val2" WHERE connect1 = 1
> ~~~
> но не работает, просьба объяснить как создать подобный SQL не очень хочется прибегать к внешним средствам (Perl, PHP...)
>
> Спасибо
>


From: Василий - 19/11/2002 - 19:44:15
Subject:Объясните IF
-----------------
И, между прочим, вполне естественно, что не работает.

if - это ф-ия, которая (как и прочие ф-ии MySQL) может стоять только там, где стоят имена полей и константы. А у тебя она вообще непонятно где.

здесь надо через временную таблицу (при этом предполагается, что на таблице table1 есть уникальный индекс).

create table tmp as select t1.* from
table1 t1
inner join table2 t2 on t1.connect1=t2.connect2
inner join table3 t3 on t1.connect1=t3.connect3
where (t2.value2 = t3.value3)
and (t1.connect1=1);


update tmp set val1="val1",val2="val2" ;

replace table1 select * from tmp;

drop table tmp;


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

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

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



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