[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Ошибка при удалении строк
Гость_Petr
Всем привет. Вот код запроса SQL:



DELETE
FROM

[tab1]

WHERE

[tab1].f = [tab2].f and
[tab1].name = [tab2].name and
[tab1].otch = [tab2].otch and
[tab1].date = [tab2].date



После запуска пишет ошибку по каждому полю:
"The column prefix 'tab2' does not match with a table name or alias name used in the query."

Таблица tab2 существует, названия полей совпадают. Если писать JOIN, то он ругается на него. Вот не могу понять в чем дело. В нете искал, тем там на эту ошибку достаточно, но все это пробовал и не помогло. Вся надежда на Вас!




Спустя 1 час, 32 минуты, 1 секунда (2.08.2011 - 14:31) linker написал(а):
А что это за интересное такое [tab1]?

Спустя 47 минут, 19 секунд (2.08.2011 - 15:18) Гость_Petr написал(а):
Всмысле интересное? это таблица, ну у меня она с другим именем, но записано так же - [apple]

Спустя 15 часов, 42 минуты, 29 секунд (3.08.2011 - 07:01) linker написал(а):
Что это за фигня "[", "]"? Обычно названия таблиц, полей обрамляются в апострофы `table`

Спустя 41 минута, 56 секунд (3.08.2011 - 07:43) Гость_Petr написал(а):
Какие к черту апострофы, может это в mysql так, а тут пишет синтаксическую ошибку. И вообще с синтаксисом тут все норм, так как ошибок по этому поводу нет. У меня полно таких запросов только на select или update, а тут с delete встрял

Спустя 34 минуты, 36 секунд (3.08.2011 - 08:17) linker написал(а):
Тогда уточняйте где это тут. Народ по-умолчанию понимает MySQL, в котором хоть как-то да соблюдаются стандарты SQL, согласно которым названия баз данных, таблиц, полей могут быть заключены в апострофы, так же заключаются в апострофы служебные слова - date зарезервированное слово. Так же согласно MySQL, нельзя указывать подобные условия tab1.f = tab2.f в случаях когда tab2 не участвует в выборке. Но это для MySQL, а вот что это за база данных "тут" нам не ведомо.

Спустя 18 минут, 47 секунд (3.08.2011 - 08:36) Гость_Petr написал(а):
linker, ёкарный бабай, я в начале вопроса указал, что это запрос SQL, поэтому и пишу ТУТ, ссылаясь на свой вопрос. я вот точно так же с выборко

Спустя 54 секунды (3.08.2011 - 08:37) Guest написал(а):
не дописал)) ну не важно. Вобщем есть какие задумки?

Спустя 6 минут, 54 секунды (3.08.2011 - 08:44) linker написал(а):
SQL-запрос запросу рознь. Его синтаксическая правота зависит от того, в какой базе данных он исполняется (MSSQL, MySQL, PostgreSQL и т.д.). В MySQL твой запрос не будет работать, а причины этого я указал выше. Поле-идентификатор какой-нибудь хотя бы в таблице tab1 есть?

Спустя 7 минут, 4 секунды (3.08.2011 - 08:51) Гость_Petr написал(а):
Цитата (linker @ 3.08.2011 - 05:44)
SQL-запрос запросу рознь. Его синтаксическая правота зависит от того, в какой базе данных он исполняется (MSSQL, MySQL, PostgreSQL и т.д.). В MySQL твой запрос не будет работать, а причины этого я указал выше. Поле-идентификатор какой-нибудь хотя бы в таблице tab1 есть?

База MSSQL 2005, идентификаторы есть, что у 1 таблицы, что у второй - id

Спустя 9 минут, 36 секунд (3.08.2011 - 09:00) linker написал(а):
Не могут быть уверенным на счёт MSSQL, но подобное сработало бы в MySQL
DELETE FROM
[tab1]
USING
[tab1], [tab2]
WHERE
[tab1].f = [tab2].f and
[tab1].name = [tab2].name and
[tab1].otch = [tab2].otch and
[tab1].date = [tab2].date

Спустя 6 минут, 30 секунд (3.08.2011 - 09:07) Гость_Petr написал(а):
ммм...интересно. ща попробую. спасибо
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.