1

私は非常に一般的な JOIN クエリを実行しています。

私の CI DB クエリは次のようになります。

    $this->db->select()
    ->from('user_event')
    ->join('game_bridge', 'user_event.gmeID = game_bridge.gmeID')
    ->where('user_event.memID', $memID);

約1分前まで私が気づかなかったのは、両方のテーブルに「場所」列があることですが、両方の列には、全体的に探しているクエリ結果に対する一意のデータセットが含まれています. それを使用して、別のプロパティ名で結果オブジェクトにアクセスできるように、1 つの場所の列または別の列にエイリアスを与える方法はありますか?

もしそうなら、どうすればCIのDBクラス/ヘルパーでそれを行うことができますか?

4

2 に答える 2

4

両方のテーブルから場所を取得する場合は、一方または両方にエイリアスを指定する必要があります。game_bridgeにエイリアスを指定するだけで、game_bridge.locationasgame_locationのようにuser_eventの場所を保持します。

$this->db->select('location,game_bridge.location as game_location')
于 2012-10-11T07:13:34.157 に答える
2

クエリにエイリアスを設定できます。

$this->db->select('user_event.location as u_loc, game_bridge.location as g_loc');

ただし、この場合、選択するすべてのフィールドを列挙する必要があります。

于 2012-10-11T07:20:16.203 に答える