текущий запрос SQL отлично работает локально на MAMP 1.8.4 под управлением MySQL 5.1.37.
SELECT
EL.log_actions, EL.log_date, EL.log_value, EL.log_type,
EA.admins_name,
EU.users_name, EU.users_matric
FROM events_log EL
JOIN events_users EU
USING (users_id)
JOIN events_admins EA
USING (admins_id)
ORDER BY EL.log_id DESC
LIMIT 0, 10
Однако, когда я перевожу этот запрос на рабочий сервер, на котором работает стандарт MySQL 4.1.22, произошла следующая ошибка (независимо от того, есть ли в записи данные).
A Database Error Occurred
Error Number: 1054
Unknown column 'sceclub_exclaim2007.EU.admins_id' in 'on clause'
SELECT EL.log_actions, EL.log_date, EL.log_value, EL.log_type,
EA.admins_name, EU.users_name, EU.users_matric
FROM events_log EL
JOIN events_users EU USING (users_id)
JOIN events_admins EA USING (admins_id)
ORDER BY EL.log_id
DESC LIMIT 0, 20
Это основано на CodeIgniter 1.7.2, и при производстве, и при разработке используется один и тот же набор базы данных.
Таблицы базы данных
events_users: users_id users_name users_credits
users_matric users_redeem
events_admins: admins_id admins_email admins_name
admins_pass admins_date admins_modified admins_last_login
events_attendance: attendance_id users_id events_id
events_events: events_id events_name events_venue events_time
events_desc events_pass
events_log:log_id admins_id log_actions log_date log_value
users_id log_type
Я новичок в MySQL, поэтому я не знаю о какой-либо разнице в версиях или о том, что может быть причиной, спасибо заранее!
Попробовал поиск в Google для MySQL4, но безрезультатно. Также пытался использовать
SELECT
EL.log_actions, EL.log_date, EL.log_value, EL.log_type,
EA.admins_name,
EU.users_name, EU.users_matric
FROM events_log EL
JOIN events_users EU
where EL.users_id = EU.users_id
JOIN events_admins EA
USING EL.admins_id = EA.admins_id
ORDER BY EL.log_id DESC
LIMIT 0, 10
Но тогда я получил ошибку как в производстве, так и в разработке.
Произошла ошибка базы данных
Номер ошибки: 1064
У вас ошибка в синтаксисе SQL;
проверьте руководство, которое соответствует
ваша версия сервера MySQL для
правильный синтаксис для использования рядом с 'JOIN
events_admins EA USING EL.admins_id =
EA.admins_id ORDER BY 'в строке 8
ВЫБРАТЬ EL.log_actions, EL.log_date,
EL.log_value, EL.log_type,
EA.admins_name, EU.users_name,
EU.users_matric FROM events_log EL
ПРИСОЕДИНИТЬСЯ к events_users EU, где EL.users_id
= EU.users_id ПРИСОЕДИНИТЬСЯ к events_admins EA ИСПОЛЬЗОВАТЬ EL.admins_id = EA.admins_id
ЗАКАЗ ПО EL.log_id DESC LIMIT 0, 20
Если вы можете указать мне некоторые ресурсы, где я могу прочитать больше о синтаксисе MySQL 4 для достижения того же эффекта, что и я с синтаксисом MySQL 5, пожалуйста, сообщите мне.
Еще раз спасибо!