首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL 5多连接语法在MySQL 4中不起作用

MySQL 5多连接语法在MySQL 4中不起作用
EN

Stack Overflow用户
提问于 2010-03-20 21:37:37
回答 2查看 611关注 0票数 1

在运行MySQL 5.1.37的MamP1.8.4上,当前的SQL查询在本地很好地工作。

代码语言:javascript
复制
  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标准的生产服务器时,会发生以下错误(无论条目中是否有数据)。

代码语言:javascript
复制
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的,生产和开发都运行着同一组数据库。

数据库表

代码语言:javascript
复制
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新手,所以我不知道版本上有什么不同,也不知道可能是什么原因,谢谢!

谷歌试图搜索MySQL4差异,但也没有效果。也试着用

代码语言:javascript
复制
  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服务器版本相对应的手册,以便在第8行使用接近“JOIN events_admins EA使用EL.admins_id = EA.admins_id ORDER BY”的正确语法。 选择EL.log_actions,EL.log_date,EL.log_value,EL.log_type,EA.admins_name,EU.users_name,EU.users_matric,events_log EL JOIN events_users EU,其中EL.users_id = EU.users_id JOIN events_admins EA使用EL.admins_id = EA.admins_id ORDER BY EL.log_id DESC限制0,20

如果您可以告诉我一些资源,在这些资源中,我可以阅读更多关于MySQL 4语法的内容,以达到与MySQL 5语法相同的效果,请告诉我。

再次感谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-03-20 21:41:01

代码语言:javascript
复制
 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 AS EL
  JOIN events_users AS EU
    ON EL.users_id = EU.users_id
  JOIN events_admins EA
    ON EL.admins_id = EA.admins_id
  ORDER BY EL.log_id DESC
  LIMIT 0, 10
票数 2
EN

Stack Overflow用户

发布于 2010-03-20 21:42:56

第二个查询应该使用关键字ON,而不是USINGwhere

代码语言:javascript
复制
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
  ON EL.users_id = EU.users_id
JOIN events_admins EA
  ON EL.admins_id = EA.admins_id
ORDER BY EL.log_id DESC
LIMIT 0, 10

如果您仍然不确定是使用加入ON还是USING,那么请查看WHERE的语法。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2484873

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档