2014-02-05 99 views
0

問題已解決。結果發現PHP代碼的其他部分正在與我正在做的事情搞砸。 D'OhSQL加入聲明失敗,其中條款

感謝大家的快速回復。

===

誰能照亮了什麼問題怎麼回事:

SELECT * FROM sale_item 
JOIN sale 
ON sale_item.id_sale = sale.id 
WHERE sale.id_job = 1 AND sale_item.id_product = 1 

我從MySQL得到一個錯誤: 「Unknown column 'id_product' in 'where clause'」

這是因爲這非常令人沮喪應該很簡單。但我對SQL很陌生。那麼我錯過了什麼可能導致這個問題的語法?表和所有列都存在。

編輯 - 更新

它TURS出它的不加入。我無法識別id_product字段是否存在,即使我可以使用phpmyadmin瀏覽該表及其中的數據。

這裏是sale_item表的出口:

CREATE TABLE `sale_item` (
`id_sale` int(11) default NULL, 
`id_product` int(11) default NULL, 
`amount` int(11) default '0' 
) ENGINE=InnoDB DEFAULT CHARSET=latin1; 

現在,我切回來,甚至這仍然是不工作:

SELECT * FROM sale_item WHERE id_product = 1 
+0

你已經在sale_item表id_product列? –

+3

請顯示'SHOW CREATE TABLE sale_item'的輸出。 – eggyal

+2

「任何人都可以照亮這裏可能會出現的問題」 - 你忘了看錯誤信息。 –

回答

1

你的語法看起來OK。錯誤消息強烈表明表sale_item沒有名爲id_product的列。也許它在sale表中?

您應該將每個表的所有列的列表添加到您的問題。

+0

-1'sale_item'表包含一個'id_product'列。原因是 – eggyal

+0

是導致問題的另一部分代碼,而不是我正在處理的那部分代碼。這本書中最古老的故事 –

+0

@eggyal提問者接受了我的建議並在他的問題中增加了更多信息,這些問題變得明顯,是的。正如你可能已經注意到的,我在更新之前發佈了方式。 – SebastianH

0

您的名稱存儲在sale_item中的表沒有名爲id_product的列 。這使查詢失敗。

請確保您的列名是正確的