Модераторы: Akina

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Работает ли подобный запрос? 
V
    Опции темы
Lunatikus
Дата 21.8.2007, 15:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 503
Регистрация: 29.6.2007

Репутация: 2
Всего: 6



Код

UPDATE table SET table.pole=table1.pole WHERE table.a=table3.a AND table3.b=table4.b

возможно ли такое написание с использованием других таблиц как в простом SELECT'е?Просто пока проверить не могу,а знать надо.


--------------------
TheSin - небольшое игровое сообщество взрослых и молодых(L2,WoW,Aion,RFonline and other not mmorpg,not computer games).
сайт гильдии
PM MAIL   Вверх
Akina
Дата 21.8.2007, 15:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 25
Всего: 454



Типа такого - да. Именно такое - нет, потому как table1 отсутствует в секции update


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Lunatikus
Дата 21.8.2007, 16:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 503
Регистрация: 29.6.2007

Репутация: 2
Всего: 6



вот конкретный пример,который не работает(ошибка:the column prefix 'OST' does not match with a table name or alias name used in the query):
Код

UPDATE DEAL SET DEAL.a=OST.a WHERE OST.b=UNI.b AND SCLAD.c=OST.ID AND DEAL.date=:date


таблица OST и все остальные существуют

Это сообщение отредактировал(а) Lunatikus - 21.8.2007, 16:40


--------------------
TheSin - небольшое игровое сообщество взрослых и молодых(L2,WoW,Aion,RFonline and other not mmorpg,not computer games).
сайт гильдии
PM MAIL   Вверх
kobra
Дата 21.8.2007, 21:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 730
Регистрация: 15.6.2005
Где: Грузия, Тбилиси

Репутация: 5
Всего: 9



Код

update t1 
set t1.n = (select t2.n from t2 where t2.id = t1.id)
where t1.id in (select t2.id from t2)

PM MAIL   Вверх
Lunatikus
Дата 22.8.2007, 09:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 503
Регистрация: 29.6.2007

Репутация: 2
Всего: 6



Цитата(kobra @  21.8.2007,  21:04 Найти цитируемый пост)

(select t2.n from t2 where t2.id = t1.id)

и это работает?откуда инфа по t1?все равно будет перебирать ее,даже если не указан во FROM'e?



--------------------
TheSin - небольшое игровое сообщество взрослых и молодых(L2,WoW,Aion,RFonline and other not mmorpg,not computer games).
сайт гильдии
PM MAIL   Вверх
Akina
Дата 22.8.2007, 09:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 25
Всего: 454



Блин, учите матчасть! или хоть что-нибудь!
Код

UPDATE DEAL, OST, UNI, SCLAD SET DEAL.a=OST.a WHERE OST.b=UNI.b AND SCLAD.c=OST.ID AND DEAL.date=:date 



--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Lunatikus
Дата 22.8.2007, 09:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 503
Регистрация: 29.6.2007

Репутация: 2
Всего: 6



от блин....а ларчик просто открывался...ну нуп я =\ теперь знаю,спасибо,Akina


--------------------
TheSin - небольшое игровое сообщество взрослых и молодых(L2,WoW,Aion,RFonline and other not mmorpg,not computer games).
сайт гильдии
PM MAIL   Вверх
Lunatikus
Дата 22.8.2007, 11:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 503
Регистрация: 29.6.2007

Репутация: 2
Всего: 6



и снова появились черви.Попробовал в Аксесе сэмулировать этот запрос-сработало.В MS SQL Server'e 2000 ругается на синтаксическую ошибку "near '','' ",т.е. там где вначале перечисляются таблицы для обновления через запятую.
Код

UPDATE DEAL,OST,UNI,SCLAD SET DEAL.ost=OST.ost WHERE
DEAL.uni=UNI.uni 
AND UNI.art=OST.art
AND SCLAD.ID=OST.ID_SCLAD




--------------------
TheSin - небольшое игровое сообщество взрослых и молодых(L2,WoW,Aion,RFonline and other not mmorpg,not computer games).
сайт гильдии
PM MAIL   Вверх
Akina
Дата 22.8.2007, 11:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 25
Всего: 454



MSDN - Platform SDK - MS SQL Srv. - T-SQL Reference - UPDATE

Читать до полного просветления.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Lunatikus
Дата 22.8.2007, 11:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 503
Регистрация: 29.6.2007

Репутация: 2
Всего: 6



все,что я понял из этого-MS SQL Srv,UPDATE.Если указываешь направление мышления,хотя бы указывай с краткими пояснениями.Я далеко не профессионал в этом деле,месяц назад только начал работать с данной СУБД(тем более не админить а программировать)

P.S.:поиск поюзал-множество непонятных англоязычных слов,то,что на русском-тоже не особо понятно

Это сообщение отредактировал(а) Lunatikus - 22.8.2007, 11:54


--------------------
TheSin - небольшое игровое сообщество взрослых и молодых(L2,WoW,Aion,RFonline and other not mmorpg,not computer games).
сайт гильдии
PM MAIL   Вверх
Lunatikus
Дата 22.8.2007, 12:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 503
Регистрация: 29.6.2007

Репутация: 2
Всего: 6



"Указание более чем одной таблицы в инструкции UPDATE не соответствует стандарту и приводит к неоднозначности"
в таком случае зачем ты посоветовал

Цитата(Akina @  22.8.2007,  09:23 Найти цитируемый пост)
UPDATE DEAL, OST, UNI, SCLAD SET DEAL.a=OST.a WHERE OST.b=UNI.b AND SCLAD.c=OST.ID AND DEAL.date=:date 

???


--------------------
TheSin - небольшое игровое сообщество взрослых и молодых(L2,WoW,Aion,RFonline and other not mmorpg,not computer games).
сайт гильдии
PM MAIL   Вверх
Akina
Дата 22.8.2007, 13:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 25
Всего: 454



Цитата(Lunatikus @  22.8.2007,  13:51 Найти цитируемый пост)
в таком случае зачем ты посоветовал

Я поправил его в ту форму, в которой чисто синтаксически его съест MySQL. У MS SQL синтаксис иной. А править отсутствие логики в чужом запросе, не имея исходных данных, мне влом.

Цитата(Lunatikus @  22.8.2007,  12:53 Найти цитируемый пост)
множество непонятных англоязычных слов

В конце - примеры.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Lunatikus
Дата 22.8.2007, 13:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 503
Регистрация: 29.6.2007

Репутация: 2
Всего: 6



Цитата(Akina @  22.8.2007,  13:10 Найти цитируемый пост)
В конце - примеры. 

я имел в виду поиск не по msdn.Если искать там по указанным тобой словам выдается множество статей,среди которых я пока ничего путного не нашел.Если знаешь конкретную страницу,поделись ссылкой,пожалуйста.читать все это можно очень долго.Мне такое "просветление" ни к чему.

Это сообщение отредактировал(а) Lunatikus - 22.8.2007, 13:31


--------------------
TheSin - небольшое игровое сообщество взрослых и молодых(L2,WoW,Aion,RFonline and other not mmorpg,not computer games).
сайт гильдии
PM MAIL   Вверх
Lunatikus
Дата 22.8.2007, 14:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 503
Регистрация: 29.6.2007

Репутация: 2
Всего: 6



ладно,вопрос,в принципе,решен.Звучал же "работает ли подобный запрос?".Работает.Но не в MS SL Server 2000.Решил по-другому-средствами ADOQuery с разделение на два запроса.Если кому надо,выложу код.Просто программирую на другой машине вне сети-переносить лень.


--------------------
TheSin - небольшое игровое сообщество взрослых и молодых(L2,WoW,Aion,RFonline and other not mmorpg,not computer games).
сайт гильдии
PM MAIL   Вверх
Idsa
Дата 22.8.2007, 14:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 2086
Регистрация: 5.12.2006
Где: Томск

Репутация: нет
Всего: 62



Цитата(Lunatikus @  22.8.2007,  14:51 Найти цитируемый пост)
Если кому надо,выложу код

Надо

Цитата(Lunatikus @  22.8.2007,  14:51 Найти цитируемый пост)
Но не в MS SL Server 2000.

Хм... Странно, очень странно, ведь MSSQL 2000 очень даже неплохая СУБД. Может, все-таки есть какой-то вариант? Может, 2005-й научился это делать?


--------------------
Мой блог: alexidsa.blogspot.com
PM MAIL ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "MS SQL"
Akina

Akina

Запрещается!

Публиковать ссылки и обсуждать взлом чего бы то ни было.

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы составления неспецифических запросов рассматриваются здесь
  • Используйте теги [code=sql][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Zloxa, Akina.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MS SQL Server | Следующая тема »


 




[ Время генерации скрипта: 0.1118 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.