2015-08-20 51 views
-2

我有兩個類別名稱和發佈表。現在我需要爲每個職位像這樣顯示的類別名稱:php mysqli錯誤:where子句中的列'id'含糊語句

$joinedcontent = Access::FETCH("SELECT * FROM " . CONTENT . 
" LEFT JOIN " . POST . " ON category = id WHERE id = ?", $row['id']); 
$ccats= $joinedcontent[0]['name']; 

在結果我看到這個錯誤:

Error: Column 'id' in where clause is ambiguous Statement: SELECT * FROM cms_content LEFT JOIN cms_posts ON type = id WHERE id = ? Arguments: Array ( [۰] => 30 )

如何解決這個錯誤?

+2

嘗試使用別名學習 –

+1

可能的重複[MySQL:「Column'column \ _name'in where clause is ambiguous」](http://stackoverflow.com/questions/337034/mysql-column-column-name-in-where-clause-is-ambiguous) –

+0

這兩個表中都有一個共同的id列。使用別名。 –

回答

1

這是數據庫的歧義,where子句中指定的「id」列屬於哪個表。內容還是POST?您必須在列名之前指定表的名稱才能識別它。例如:

$joinedcontent = Access::FETCH("SELECT * FROM " . CONTENT . 
" LEFT JOIN " . POST . " ON category = " . POST . ".id WHERE " . POST . ".id = ?", $row['id']); 
$ccats= $joinedcontent[0]['name']; 
+0

不行!我看到同樣的錯誤! – Perspolis

+0

是的,我錯過了其中一個。編輯過的應該可以工作。 – Ahmad

0

可能是其他表中可用的相同列。所以請使用table.column來避免衝突列(ambigity)

+0

似乎更多評論 –