2013-04-18 43 views
0

我有以下查詢:爲什麼我在這個查詢中得到「不明確的列名」?

$sql = "SELECT * FROM employee AS emp LEFT JOIN tr_bls_date AS bls ON emp.employee_id=bls.employee_id AND employee_id='".$id."'"; 

基本上,兩者empbls表具有一個共同的employee_id字段。我正在通過員工的編號尋找某位員工($id)。我在這裏做錯了什麼?

回答

3

因爲有兩個表,其中包含employee_id和服務器混淆它將搜索。要解決該問題,請添加源表,例如。

ON emp.employee_id = bls.employee_id AND 
    emp.employee_id = ?  // this will search on table employee 
+1

@FreshPrinceOfSO不。與'SELECT *'無關。它是在條件。測試它。 –

2

你正在做一個left join,所以你應該使用別名emp

. . . 
emp.employee_id=bls.employee_id AND emp.employee_id=. . . 

你應該在left join使用別名從第一表,因爲你總是保證具有價值。

+0

這與內連接也是不明確的。 –

+0

@DanBracuk。 。 。確實如此。這個參考就是應該使用哪個別名。對於左外連接,它有所不同。 –

相關問題