Что неправильно в запросе на удаление?

Что неправильно в запросе на удаление?

DELETE FROM htl_prices USING htl_prices, hotels WHERE htl_prices.htl_id <> hotels.htl_id

В мануале не уточнятся, надо ли повторять первую таблицу в USING.

А кроме того, по моему и условие у меня неправильное. Напрашивается что-то вроде not exist ...
А надо удалить записи первой таблицы, если нет соответствия id во второй.

Или все неправильно!..
 

ONK

Пассивист PHPСluba
Возможно неправильная версия сервера -)
 
Пишет Syntax error
А составлено правильно?

Как узнать версию, если она у провайдера?
 

ONK

Пассивист PHPСluba
Вообще условие твоего запроса неправильное...
В обыном запросе я бы сделал .... htl_prices LEFT JOIN hotels ON (htl_prices.htl_id = hotels.htl_id
) WHERE hotels.htl_id IS NULL

Но в многотабличном удалении я незнаю как правильно -(


Как узнать версию сервера смотрив мане...
 
Я так понял, что синтаксис у меня верен? Но условие разве правильно? Меня смущает "<>".
 

tony2001

TeaM PHPClub
>Меня смущает "<>".
если ты, наконец, догадаешься сделатьe echo mysql_error();, то сам все увидишь.
 

ONK

Пассивист PHPСluba
Именно JOIN здесь и обязателен, именно он возвращает поле со значением NULL в случае если во второй таблице запись не найдена.

В синтаксисет втоего запроса ошибок нет, просто многотбличное удаление работает только начиная с 4 - й ветсии сервера mysql...
 
ONK. Насколько я знаю, JOIN и таблицы, разделенные запятыми, вроде, одно и то же?. Или нет?..

А Syntax error пишет самодельный интерфейс, которым я иногда пользуюсь - он наглядный.
 
tony2001.

Проверить версию сию секунду нет возможности. Но хочу исключить хотя бы ошибку синтаксиса.
Можете резюмировать, так правильно?

PHP:
DELETE FROM htl_prices USING htl_prices, hotels WHERE hotels.htl_id IS NULL
Больше беспокоить не буду.

Спасибо
 

ONK

Пассивист PHPСluba
Автор оригинала: Эдуард
ONK. Насколько я знаю, JOIN и таблицы, разделенные запятыми, вроде, одно и то же?. Или нет?..

А Syntax error пишет самодельный интерфейс, которым я иногда пользуюсь - он наглядный.
Нет это не одно и тоже.

Если объединять таблици через запятую, то в случае отсутствия записи во второй таблице соответсвующей записи в первой, в выборке не будет записи из первой таблици. В случае объединения через LEFT JOIN запись в выборку попадёт, просто поля из второй таблици будут иметь значения NULL .
 

tony2001

TeaM PHPClub
>Проверить версию сию секунду нет возможности.
вот когда будут проблемы, тогда и пиши error message и запрос.
если проверить негде, то и проблем нет.
кроме того, я _уже ответил в своем первом постинге_.
 
Сверху