Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Что неправильно в запросе? / 15 сообщений из 15, страница 1 из 1
01.07.2015, 10:04:38
    #38996547
svnvlad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что неправильно в запросе?
Код: sql
1.
2.
3.
4.
delete
from auto_card_cargo acc
where not exists
(select * from `contract_cargo_sub` ccs WHERE ccs.id = acc.contract_cargo_sub_id)
...
Рейтинг: 0 / 0
01.07.2015, 10:13:01
    #38996556
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что неправильно в запросе?
А что не устраивает? сервер не принимает запрос, выдавая сообщение об ошибке? не удаляются записи? удаляются лишние записи? преподаватель не принимает решение?
...
Рейтинг: 0 / 0
01.07.2015, 10:14:25
    #38996557
svnvlad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что неправильно в запросе?
AkinaА что не устраивает? сервер не принимает запрос, выдавая сообщение об ошибке? не удаляются записи? удаляются лишние записи? преподаватель не принимает решение?
авторYou have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '*
from auto_card_cargo acc
where not exists
(select * from `contract_cargo_su' at line 1
...
Рейтинг: 0 / 0
01.07.2015, 10:16:00
    #38996560
svnvlad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что неправильно в запросе?
нужно удалить записи, у которых ключ потерялся.
...
Рейтинг: 0 / 0
01.07.2015, 10:18:55
    #38996563
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что неправильно в запросе?
Вы нам врёте. Сообщение об ошибке НЕ СООТВЕТСТВУЕТ показанному тексту запроса.
...
Рейтинг: 0 / 0
01.07.2015, 10:21:53
    #38996566
svnvlad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что неправильно в запросе?
AkinaВы нам врёте. Сообщение об ошибке НЕ СООТВЕТСТВУЕТ показанному тексту запроса.
Код: sql
1.
2.
3.
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'acc
where not exists
(select * from `contract_cargo_sub` ccs WHERE ccs.id = ac' at line 2


Как вы могли такое подумать?!
...
Рейтинг: 0 / 0
01.07.2015, 10:23:39
    #38996567
svnvlad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что неправильно в запросе?
Т.е. проблема в том, что DELETE алиасы не любит?
...
Рейтинг: 0 / 0
01.07.2015, 10:52:27
    #38996606
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что неправильно в запросе?
svnvladКак вы могли такое подумать?!
Сервер ТОЧНО цитирует фрагмент запроса. Первый вариант сообщения об ошибке первым символом цитаты имеет звёздочку, которая в тексте запроса отсутствует. Вывод очевиден - сообщение об ошибке не соответствует процитированному запросу.

Кроме того, цитата запроса начинается именно с того символа, который "не нравится" серверу.

svnvladТ.е. проблема в том, что DELETE алиасы не любит?

Маны читать не пробовал? Ну так почитай: 13.2.2 DELETE Syntax . У тебя однотабличный запрос - попробуй найти там хоть намёк на возможность использования алиаса.
...
Рейтинг: 0 / 0
01.07.2015, 11:49:44
    #38996679
Cygapb-007
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что неправильно в запросе?
Akina,
а разве не получится так?
Код: sql
1.
2.
3.
4.
delete acc
from auto_card_cargo acc
where not exists
(select * from `contract_cargo_sub` ccs WHERE ccs.id = acc.contract_cargo_sub_id)
...
Рейтинг: 0 / 0
01.07.2015, 11:51:46
    #38996684
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что неправильно в запросе?
Cygapb-007разве не получится так?
Получится. Потому что это - синтаксис для многотабличного запроса на удаление.
...
Рейтинг: 0 / 0
08.07.2015, 03:14:26
    #39001902
svnvlad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что неправильно в запросе?
AkinaCygapb-007разве не получится так?
Получится. Потому что это - синтаксис для многотабличного запроса на удаление.

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
Multiple-Table Syntax

DELETE [LOW_PRIORITY] [QUICK] [IGNORE]
    tbl_name[.*] [, tbl_name[.*]] ...
    FROM table_references
    [WHERE where_condition]

Or:

DELETE [LOW_PRIORITY] [QUICK] [IGNORE]
    FROM tbl_name[.*] [, tbl_name[.*]] ...
    USING table_references
    [WHERE where_condition]


А где здесь про алиасы?
...
Рейтинг: 0 / 0
08.07.2015, 03:18:12
    #39001903
svnvlad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что неправильно в запросе?
Каждый раз коробит от того, как на официальном сайте MySQL описывают синтаксис.
Во-первых, каждый раз натыкаешься на кучу опций, которые в 99% случаев никогда не используются, типа [LOW_PRIORITY] [QUICK] [IGNORE].
Во-вторых, что такое tbl_name, и что такое table_references?
Как бы между строк: "это не для средних умов, где тебе, лошаре, понять..."
...
Рейтинг: 0 / 0
08.07.2015, 03:20:38
    #39001904
svnvlad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что неправильно в запросе?
Неужели имелось в виду, под FROM table_references все INNER и LEFT JOIN-ы?
И, может чего-то не знаю, но напомните, что за оператор USING?
...
Рейтинг: 0 / 0
08.07.2015, 07:50:38
    #39001941
Cygapb-007
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что неправильно в запросе?
svnvlad ,

http://dev.mysql.com/doc/refman/5.6/en/delete.html Multi-Table Deletes
You can specify multiple tables in a DELETE statement to delete rows from one or more tables depending on the condition in the WHERE clause. You cannot use ORDER BY or LIMIT in a multiple-table DELETE. The table_references clause lists the tables involved in the join, as described in Section 13.2.9.2, “JOIN Syntax”.
For the first multiple-table syntax, only matching rows from the tables listed before the FROM clause are deleted. For the second multiple-table syntax, only matching rows from the tables listed in the FROM clause (before the USING clause) are deleted. The effect is that you can delete rows from many tables at the same time and have additional tables that are used only for searching:
Код: sql
1.
2.
DELETE t1, t2 FROM t1 INNER JOIN t2 INNER JOIN t3
WHERE t1.id=t2.id AND t2.id=t3.id;


Or:
Код: sql
1.
2.
DELETE FROM t1, t2 USING t1 INNER JOIN t2 INNER JOIN t3
WHERE t1.id=t2.id AND t2.id=t3.id;


These statements use all three tables when searching for rows to delete, but delete matching rows only from tables t1 and t2.
...
Рейтинг: 0 / 0
08.07.2015, 08:57:15
    #39001987
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что неправильно в запросе?
svnvladА где здесь про алиасы?
Обратите внимание - в синтаксисе многотабличного запроса (в обеих его формах) использовано table_references . Что такое этот table_references - разъясняется в справке по JOIN, где в т.ч. устанавливается допустимость использования алиасов.
А вот в синтаксисе однотабличного запроса используется tbl_name - т.е. однозначно имя, и никаких алиасов.
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Что неправильно в запросе? / 15 сообщений из 15, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]