我有一个简单的左连接查询。
SELECT e.employee_id as employee
, e.badge_id as badge
, e.first_nm as first
, e.last_nm as last
, e.work_phone as work_ph
, e.mobile_phone as mobile_ph
, e.manager_id as man_id
, e.title_id as titl_id
, e.username as user
, e.start_dt as start
, m.employee_id as memp_id
, m.last_nm as m_last
, m.first_nm as m_first
, t.title_nm as titl_nm
FROM employee e
left join employee m
on e.manager_id = m.employee_id
left join title t
on e.title_id = t.title_id
WHERE e.employee_id = 1
如果我像上面那样使用列别名,则查询工作正常。但是,如果我不使用别名,则不会返回某些值。例如,如果我没有为该列指定别名,则以下命令返回一个空格。
e.first_nm as first //returns "Robert"
e.first_nm //returns ""
e.first_nm as first_nm //returns "" (alias matches column name)
在同一个查询中,
e.middle_nm //will return "P"
不管它是否有别名。我很困惑。
我已经为我的表设置了别名,并且在列名中使用了表别名,因此不应有任何不明确的列名。
如有任何想法,我们将不胜感激。 谢谢,
罗布
最佳答案
您有两列与 first_nm
同名,PDO 可能不知道返回什么给您的代码然后返回简单的“”。虽然当他们来到一条记录时他们在不同的表中,但他们有相同的名字......你看到问题了吗?
关于php - 使用没有列别名的 PDO::FETCH_ASSOC 的奇怪 MYSQL 结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22853078/