这是我的疑问:
$query = $this->db->query('
SELECT archives.id, archives.signature, type_of_source.description, media_type.description, origin.description
FROM archives, type_of_source, media_type, origin
WHERE archives.type_of_source_id = type_of_source.id
AND type_of_source.media_type_id = media_type.id
AND archives.origin_id = origin.id
ORDER BY archives.id ASC
');
但是如何输出结果呢?这有效,但只获得最后的描述(origin.description):
foreach ($query->result_array() as $row)
{
echo $row['description'];
}
这不起作用:
foreach ($query->result_array() as $row)
{
echo $row['type_of_source.description'];
}
或者我应该重命名列(例如type_of_source_description)?
答案 0 :(得分:5)
这实际上与CodeIgniter关系不大,而且mysql_fetch_assoc如何提供查询结果。 解决方案是您应该使用“AS”重命名查询中的列,例如
select type_of_source.description as type_of_source_description, origin.descripotion as origin_descripotion from ....
答案 1 :(得分:2)
只是别名SELECT语句中的列。不要修改您的数据库。标准做法是在SQL语句中使用别名。
来自PostgreSQL的“SELECT”文档:
“使用AS output_name子句,可以为输出列指定另一个名称。”
答案 2 :(得分:1)
我建议不要使用这种方式,而是可以使用“AS”重命名输出列。