SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 03.08.2009 15:15:56

mcfly
Участник
Зарегистрирован: 03.08.2009
Сообщений: 1

MySQL ругается на существующий столбец

На старом MySQL все работало. Поставили MySQL 5.1.3 и начало ругаться:

Unknown column 'dd.id' in 'on clause'

На запрос:

SELECT DISTINCT dd.name, dd.id, cd.abbrev AS cycle, kd.name AS kafedra_name
FROM discipline_dic dd, cycle_dic cd, kafedra_dic kd
LEFT JOIN discipline_umk_rel dur ON (dd.id = dur.discipline_id)
LEFT JOIN umk_speciality_rel usr ON (dur.umk_id = usr.umk_id)
LEFT JOIN umk_napravlenie_rel unr ON (dur.umk_id = unr.umk_id)
WHERE dd.cycle_id = cd.id and dd.kafedra_id = kd.id
ORDER BY BINARY(dd.name) ASC

НО В БД СТОЛБЕЦ id И ТАБЛИЦА discipline_dic СУЩЕСТВУЮТ.

Это глюк, нововведение в этой версии мускула или что?

Новый мускул версии 5.1.35. Скачал и установил в начале июля. Тогда эта версия была уже стабильной

Заранее благодарен

Неактивен

 

#2 03.08.2009 17:23:55

Diter
Участник
Зарегистрирован: 21.03.2009
Сообщений: 5

Re: MySQL ругается на существующий столбец

Добавьте скобки таким образом:

...
FROM (discipline_dic dd, cycle_dic cd, kafedra_dic kd)
...

JOIN имеет выше приоритет чем `,`

http://dev.mysql.com/doc/refman/5.0/en/join.html написал:

Previously, the comma operator (,) and JOIN both had the same precedence, so the join expression t1, t2 JOIN t3 was interpreted as ((t1, t2) JOIN t3). Now JOIN has higher precedence, so the expression is interpreted as (t1, (t2 JOIN t3)). This change affects statements that use an ON clause, because that clause can refer only to columns in the operands of the join, and the change in precedence changes interpretation of what those operands are.

Неактивен

 

#3 03.12.2009 17:02:52

amp
Участник
Зарегистрирован: 03.12.2009
Сообщений: 2

Re: MySQL ругается на существующий столбец

Добрый день,
Конвертирую ybbsse(далее старый форум) на smf 2.0 , использую скрипт конвертации с simplemachines.org

После переноса старого форума на новый хостинг возникли проблемы с синтаксисом SQL запросов в  скриптах старого форума. Я поправил и старый форум запустился. Скрипт конвертации поправил аналогично, однако ошибку
Unknown column 'mem.member_name' in 'field list'
все равно выдает.

Полный текст:
Converting members... Unsuccessful!
This query:

    SELECT
    mem.id_member, SUBSTRING(mem.member_name, 1, 80) AS member_name,
    mem.date_registered, mem.posts, SUBSTRING(mem.passwd, 1, 64) AS passwd,
    SUBSTRING(mem.website_title, 1, 255) AS website_title,
    SUBSTRING(mem.website_url, 1, 255) AS website_url, mem.last_login,
    mem.birthdate, SUBSTRING(mem.icq, 1, 255) AS icq,
    SUBSTRING(IFNULL(mem.real_name, mem.member_name), 1, 255) AS real_name,
    mem.notify_once AS notify_once, REPLACE(mem.lngfile, '.lng', '') AS lngfile,
    SUBSTRING(mem.email_address, 1, 255) AS email_address,
    SUBSTRING(mem.aim, 1, 16) AS aim,
    SUBSTRING(mem.personal_text, 1, 255) AS personal_text,
    SUBSTRING(mem.time_format, 1, 80) AS time_format,
    mem.hide_email, SUBSTRING(mem.member_ip, 1, 255) AS member_ip,
    SUBSTRING(mem.member_ip, 1, 255) AS member_ip2,
    SUBSTRING(mem.yim, 1, 32) AS yim,
    IF(IFNULL(mem.gender, '') = '', 0, IF(mem.gender = 'Male', 1, 2)) AS gender,
    SUBSTRING(mem.msn, 1, 255) AS msn,
    SUBSTRING(REPLACE(mem.signature, '<br>', '<br />'), 1, 65534) AS signature,
    SUBSTRING(mem.location, 1, 255) AS location, mem.time_offset,
    SUBSTRING(mem.avatar, 1, 255) AS avatar,
    SUBSTRING(mem.usertitle, 1, 255) AS usertitle,
    mem.im_email_notify AS pm_email_notify, mem.karma_bad, mem.karma_good,
    mem.notify_announcements,
    SUBSTRING(mem.secret_question, 1, 255) AS secret_question,
    IF(mem.secret_answer = '', '', MD5(mem.secret_answer)) AS secret_answer,
    CASE
    WHEN mem.memberGroup = 'Administrator' THEN 1
    WHEN mem.memberGroup = 'Global Moderator' THEN 2
    WHEN mg.id_group = 8 THEN 2
    WHEN mg.id_group = 1 THEN 1
    WHEN mg.id_group > 8 THEN mg.id_group
    ELSE 0
    END AS id_group, '' AS buddy_list, '' AS pm_ignore_list,
    '' AS message_labels, '' AS validation_code, '' AS additional_groups,
    '' AS smiley_set, '' AS password_salt
    FROM (`olddb_yabbse`.yabbse_members AS mem)
    LEFT JOIN `olddb_yabbse`.yabbse_membergroups AS mg ON (mg.membergroup = mem.memberGroup)
    LIMIT 0, 500;

Caused the error:

    Unknown column 'mem.member_name' in 'field list'

Подскажите, пожалуйста, где копать.

Отредактированно amp (03.12.2009 17:03:45)

Неактивен

 

#4 03.12.2009 17:20:28

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6756

Re: MySQL ругается на существующий столбец

Ну, очевидно, копать в таблице yabbse_members в поисках столбца member_name smile

Неактивен

 

#5 03.12.2009 17:56:28

amp
Участник
Зарегистрирован: 03.12.2009
Сообщений: 2

Re: MySQL ругается на существующий столбец

paulus написал:

Ну, очевидно, копать в таблице yabbse_members в поисках столбца member_name smile

В точку. Глаз у меня "замылился". smile Стыдно, старею...Пойду посыпать голову пеплом... sad

Премного благодарен, уважаемый!

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson