如何在PHP中指定echo $row输出同名列所属表的内容?
问题:PHP多表查询同名列如何指定来源输出?
在PHP中从只读数据库的多张表获取数据时,遇到部分表存在同名列的情况。例如job表和job_operation表都包含Description列,已执行如下多表查询:
SELECT job.Job, job.Description, job_operation.Description, job_operation.Job_Operation FROM job, job_operation WHERE job_operation.Job = job.Job AND job_operation.Job_Operation = '$str'
希望在使用<?php echo $row->Description; ?>输出时,指定该Description值来自job表还是job_operation表,是否可行?
解决方案
当然可行,核心是给SQL查询中的同名列添加别名,让结果集里的字段名唯一,这样PHP就能精准调用对应字段:
修改SQL语句,为同名列设置别名
在SELECT子句中,给每个同名列指定不同的别名,示例如下:SELECT job.Job, job.Description AS job_description, job_operation.Description AS op_description, job_operation.Job_Operation FROM job, job_operation WHERE job_operation.Job = job.Job AND job_operation.Job_Operation = '$str'这里用
AS关键字给job.Description起别名job_description,给job_operation.Description起别名op_description(AS可省略,直接写job.Description job_description同样生效)。在PHP中通过别名输出对应字段
之后在PHP代码里,就可以通过别名区分两个来源的Description:// 输出job表的Description echo $row->job_description; // 输出job_operation表的Description echo $row->op_description;
内容的提问来源于stack exchange,提问作者Evan Medeiros
相关产品推荐
相关产品推荐

