【问题标题】:mysql error: Unknown column 'thread.threadid' in 'on clause'mysql错误:'on子句'中的未知列'thread.threadid'
【发布时间】:2011-03-06 03:33:09
【问题描述】:

我收到以下错误...

ERROR:
mysql error: Unknown column 'thread.threadid' in 'on clause'

我听说它与 MySQL 版本有关...我需要对我的 PHP 代码进行哪些更改才能通过此错误?我读到这个错误是因为在 SELECT 查询中使用了逗号运算符。此查询不适用于新的 MySQL 5 严格查询解析器,后者将逗号视为低于连接的优先级。

Database error in vBulletin 3.0.7:

Invalid SQL: 
    SELECT thread.threadid, thread.forumid
    FROM thread AS thread, subscribethread AS subscribethread
    LEFT JOIN deletionlog AS deletionlog ON(deletionlog.primaryid = thread.threadid AND type = 'thread')
    WHERE subscribethread.threadid = thread.threadid
    AND subscribethread.userid = 1
    AND thread.visible = 1
    AND lastpost > 1277054898
    AND deletionlog.primaryid IS NULL

mysql error: Unknown column 'thread.threadid' in 'on clause'

mysql error number: 1054

SELECT thread.threadid, thread.forumid中的逗号可以简单去掉吗?

请解释...

【问题讨论】:

  • 您能否验证thread 有一个threadid 列并且拼写正确?

标签: mysql vbulletin mysql-error-1054


【解决方案1】:

您想将threaddeletionlog 联接,但查询正在尝试将subscribethreaddeletionlog 联接。替换为:

FROM subscribethread AS subscribethread, thread AS thread
LEFT JOIN deletionlog AS deletionlog ON(deletionlog.primaryid = thread.threadid AND type = 'thread')

【讨论】:

  • 为什么逗号的位置会改变?为什么要交换 FROM 后面的单词?
  • @Vsh3r 您的代码尝试从thread 表和通过左连接subscribedthreaddeletionlog 表获得的表中进行选择;你真正想要的是从表subscribethread和左连接threaddeletionlog得到的表中选择表。
猜你喜欢
  • 2018-05-12
  • 1970-01-01
  • 1970-01-01
  • 2013-01-26
  • 2011-05-03
  • 1970-01-01
  • 2014-03-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多