Версия для печати темы

Нажмите сюда для просмотра этой темы в оригинальном формате

WinCity.Ru _ Microsoft/Office Access _ SQL

Автор: Beerman Вторник, 20 Ноября 2007, 19:03

Суть такова
есть две таблицы tab1 и tab2
надо изменить все значения в одном столбце column2.tab1 при условии совпадении значений column.tab1=(запрос)

мой код
update tab1
set column1='0.001'
where column1=
(select column1
from tab2
where (left(column2,2)='25'))

выходит ошибка что больше одного совпадения, чаво делать дальше?




первый день изучения sql и сразу в бой lamo.gif

Автор: Админ Вторник, 20 Ноября 2007, 19:51

Запрос для какой СУБД? MSSQL, Oracle, MySQL? Или исходя тематики раздела - для MS Access?

Самое простое:

Код
UPDATE tab1
SET column1='0.001'
WHERE column1 IN (SELECT column1
                  FROM tab2
                  WHERE left(column2,2)='25')


Можно более извращенно:
Код
UPDATE (tab1 INNER JOIN tab2 ON tab1.column1 = tab2.column1)
SET tab1.column1='0.001'
WHERE left(tab2.column2,2)='25'


А вообще, конечно, не мешает взять книжку по основам SQL и разобраться самому с базовыми конструкциями языка

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)