Помочь разобраться в запросе

Тема в разделе "Базы данных", создана пользователем Doctor_Chaos, 8 май 2014.

Статус темы:
Закрыта.
Модераторы: latteo
  1. Doctor_Chaos

    Doctor_Chaos Проктолог-гинеколог

    Moderator
    • Супермодератор
    Регистр.:
    7 сен 2013
    Сообщения:
    952
    Симпатии:
    654
    Имеется запрос:
    Код:
    delete FROM users U, users_stat US
    
                        WHERE U.activated = 0 AND U.activate_expire < "2014-05-08 02:45:07" AND U.user_id = US.user_id AND US.last_login = "0000-00-00 00:00:00"
    Получаю ошибку:
    your MariaDB server version for the right syntax to use near 'U, users_stat US WHERE U.activated = 0 AND U.activate' at line 1
    При этом если delete сменить на select * то ошибок нет, выводит список. В чем косяк?
     
  2. latteo

    latteo Эффективное использование PHP, MySQL

    Moderator
    Регистр.:
    28 фев 2008
    Сообщения:
    1.517
    Симпатии:
    1.367
    Дописать надо из каких таблиц удалять. Варианты:
    Код:
    DELETE u.* ...
    DELETE us.* ...
    DELETE u.*, us.* ...
    
     
    Doctor_Chaos и Viodele нравится это.
  3. Doctor_Chaos

    Doctor_Chaos Проктолог-гинеколог

    Moderator
    • Супермодератор
    Регистр.:
    7 сен 2013
    Сообщения:
    952
    Симпатии:
    654
    DELETE DELETE u.*, us.* FROM users U, users_stat US >
    [SQL Error] ( 42S02.1109 : Unknown table 'u' in MULTI DELETE )
     
  4. Viodele

    Viodele Механик

    Administrator
    Регистр.:
    17 дек 2011
    Сообщения:
    117
    Симпатии:
    495
    Очень смешно. Чувствительность к регистру, не?

    DELETE DELETE u.*, us.* FROM users U, users_stat US

    Должно быть:

    DELETE DELETE u.*, us.* FROM users u, users_stat us
     
    latteo нравится это.
  5. Doctor_Chaos

    Doctor_Chaos Проктолог-гинеколог

    Moderator
    • Супермодератор
    Регистр.:
    7 сен 2013
    Сообщения:
    952
    Симпатии:
    654
    С регистрами все в порядке - маленькие буквы как в запросе так и в базе в именах таблиц
     
  6. Viodele

    Viodele Механик

    Administrator
    Регистр.:
    17 дек 2011
    Сообщения:
    117
    Симпатии:
    495
    PHP:
    delete U.*, US.* 
        
    FROM `users` AS U, `users_stat` AS US
        WHERE U
    .activated AND U.activate_expire "2014-05-08 02:45:07" AND U.user_id US.user_id AND US.last_login "0000-00-00 00:00:00"
     
    Doctor_Chaos нравится это.
  7. Doctor_Chaos

    Doctor_Chaos Проктолог-гинеколог

    Moderator
    • Супермодератор
    Регистр.:
    7 сен 2013
    Сообщения:
    952
    Симпатии:
    654
    Спасибо, не понял твоего намека, работает:beer:
     
    Viodele нравится это.
Статус темы:
Закрыта.