2010-06-21 33 views
1

我收到以下錯誤「thread.threadid」 ......MySQL錯誤:未知列在「關於條款」

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中取出逗號嗎?

請解釋...

+0

你可以驗證'線程'有'threadid'列,它的拼寫正確嗎? – 2010-06-21 03:31:26

回答

0

你想加入threaddeletionlog但查詢正在嘗試加入subscribethreaddeletionlog。替換爲:

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

爲什麼逗號的位置會改變事物?爲什麼在FROM之後交換單詞? – Vsh3r 2010-07-06 05:38:55

+0

@ Vsh3r你的代碼嘗試從表中選擇'thread'和通過左連接'subscribedthread'和'deletionlog'表獲得的表;你真正想要的是從表中選擇'subscribethread'和左連接'thread'和'deletionlog'表獲得的表。 – Amarghosh 2010-07-06 05:55:15