За последние 24 часа нас посетили 18619 программистов и 1614 роботов. Сейчас ищут 1632 программиста ...

MySQL 3.23.58

Тема в разделе "Прочее", создана пользователем C, 31 июл 2007.

  1. C

    C Активный пользователь

    С нами с:
    28 май 2006
    Сообщения:
    326
    Симпатии:
    0
    У закащщика MySQL 3.23.58! Ругается на такое
    You have an error in your SQL syntax near
    'SELECT _cert_ID FROM _fmp_pre_84 WHERE _type='B')
    AND YEAR(_birth_date) < 19' at line 9
    [sql]
    SELECT
    _ID,
    _birth_surname,
    _birth_forename,
    YEAR(_birth_date) as _year,
    MONTH(_birth_date) as _month
    FROM _birth
    WHERE
    _ID NOT IN (SELECT _cert_ID FROM _fmp_pre_84 WHERE _type='B') AND
    YEAR(_birth_date) < 1984
    [/sql]
     
  2. Anonymous

    Anonymous Guest

    а на что ругается то?
     
  3. C

    C Активный пользователь

    С нами с:
    28 май 2006
    Сообщения:
    326
    Симпатии:
    0
    ну как на что на запрос,. а что можно узнать боле подробно? Вложенный запрос наверно тройке на под силу.
     
  4. armadillo

    armadillo Активный пользователь

    С нами с:
    6 апр 2007
    Сообщения:
    2.380
    Симпатии:
    0
    Адрес:
    Russia, Moscow
    текст сообщения об ошибке не приходило в голову почитать?

    1984 в кавычках?
     
  5. stas_t

    stas_t Активный пользователь

    С нами с:
    24 апр 2007
    Сообщения:
    500
    Симпатии:
    0
    Адрес:
    Courbevoie, France
    вложенных подзапросов в тройке не было. здесь очевидный left join
     
  6. Dagdamor

    Dagdamor Активный пользователь

    С нами с:
    4 фев 2006
    Сообщения:
    2.095
    Симпатии:
    1
    Адрес:
    Барнаул
    Банально конечно, но помимо прочего посоветуй заказчику обновить мускул - третья версия уж очень устарела.
     
  7. C

    C Активный пользователь

    С нами с:
    28 май 2006
    Сообщения:
    326
    Симпатии:
    0
    та не согласится он, советовал уже,
    кавычками инты не обволакиваются,
    решил просто поле добавить.
     
  8. stas_t

    stas_t Активный пользователь

    С нами с:
    24 апр 2007
    Сообщения:
    500
    Симпатии:
    0
    Адрес:
    Courbevoie, France
    попробуйте так... (если поля в таблицах пересекаются, подставьте алиасы)
    [sql]
    select _id
    , _birth_surname
    , _birth_forename
    , year(_birth_date) as _year
    , month(_birth_date) as _month
    from _birth
    left join _fmp_pre_84 on _id = _cert_id and _type='B'
    where _cert_id is null
    and _birth_date < '1984'[/sql]