php - 使用没有列别名的 PDO::FETCH_ASSOC 的奇怪 MYSQL 结果

标签 php mysql sql pdo alias

我有一个简单的左连接查询。

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/

相关文章:

php - 如何从 JSON 在 Eloquent ORM 中保存具有相关记录的模型

php - #1045 - 'root' @'localhost' 的访问被拒绝(使用密码 : YES))

MySQL:使用分组依据和最大限制进行计数

java - MySQL 不使用 netbeans 将插入推送到数据库中

sql - 从 Analysis Services 获取实例名称,如 @@ServerName

php - 当链接注入(inject) <tbody> 时, Bootstrap 确认模式不起作用

php - 如何将 SELECT ALL 值或 SELECTED 复选框值插入到 mysql 中的不同列中?

mysql - 从一对多关系中只检索一条记录

php - 检查是否存在,如果存在则更新1++,如果不存在则插入

Mysql - 通过保留以前的数据合并两个表