我有以下查詢:爲什麼我在這個查詢中得到「不明確的列名」?
$sql = "SELECT * FROM employee AS emp LEFT JOIN tr_bls_date AS bls ON emp.employee_id=bls.employee_id AND employee_id='".$id."'";
基本上,兩者emp
和bls
表具有一個共同的employee_id
字段。我正在通過員工的編號尋找某位員工($id
)。我在這裏做錯了什麼?
我有以下查詢:爲什麼我在這個查詢中得到「不明確的列名」?
$sql = "SELECT * FROM employee AS emp LEFT JOIN tr_bls_date AS bls ON emp.employee_id=bls.employee_id AND employee_id='".$id."'";
基本上,兩者emp
和bls
表具有一個共同的employee_id
字段。我正在通過員工的編號尋找某位員工($id
)。我在這裏做錯了什麼?
因爲有兩個表,其中包含employee_id
和服務器混淆它將搜索。要解決該問題,請添加源表,例如。
ON emp.employee_id = bls.employee_id AND
emp.employee_id = ? // this will search on table employee
你正在做一個left join
,所以你應該使用別名emp
:
. . .
emp.employee_id=bls.employee_id AND emp.employee_id=. . .
你應該在left join
使用別名從第一表,因爲你總是保證具有價值。
這與內連接也是不明確的。 –
@DanBracuk。 。 。確實如此。這個參考就是應該使用哪個別名。對於左外連接,它有所不同。 –
@FreshPrinceOfSO不。與'SELECT *'無關。它是在條件。測試它。 –