2

これは私の質問です:

$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など)?

4

3 に答える 3

5

これは、実際には CodeIgniter とはほとんど関係がなく、mysql_fetch_assoc がクエリ結果を提供する方法と多くの関係があります。

"AS"解決策は、たとえば、を使用してクエリ内の列の名前を変更することです。

select type_of_source.description as type_of_source_description, origin.descripotion as origin_descripotion from ....
于 2008-10-09T13:09:10.493 に答える
2

SELECT ステートメントで列に別名を付けるだけです。データベースを変更しないでください。標準的な方法は、SQL ステートメントでエイリアシングを使用することです。

のPostgreSQLのドキュメントから"SELECT"

「句 AS output_name を使用すると、出力列に別の名前を指定できます。」

PostgreSQL 選択

于 2008-10-09T13:57:45.980 に答える
1

代わりに、そのように使用しないことをお勧めします。出力列の名前をAS.

于 2008-11-14T11:50:11.123 に答える