0

次のような 2 つのテーブルがあります。

Table_one


P_id     Value
1001     50
1002     54
1003     47
1004     65
1005     51

Table_two

S_id     Rating     t_id
1001     1          1
1002     3          1
1001     5          2
1004     1          2
1005     2          2

codeigniter のアクティブ レコード クラスを使用して 2 つのテーブルを結合しようとしています。これが私のコードです:

$tId = 1;
$this->db->select('Table_one.Value, Table_two.Rating');
$this->db->from('Table_one');
$this->db->join('Table_two', 'Table_one.P_id = Table_two.S_id', 'left');
$this->db->where('Table_two.t_id', $tId);
$query = $this->db->get();

このクエリでは、テーブル 1 の 5 行すべてのデータに、テーブル 2 の "Rating" 列の値が最初の 2 行に追加されることを期待しています。代わりに、最初の 2 行からのみデータを取得しています。アクティブなレコード クラスを引き続き使用して、コードを書き直して、期待どおりの結果を得るにはどうすればよいですか?

4

3 に答える 3

0

コードを見ると、2行を返す必要があります...5行を取得したい場合は、where句を削除してください。

于 2014-12-11T11:53:40.260 に答える
0

あなたはwhere句にある$tidようです。1これにより、最初の 2 行の値のみが取得されます。

于 2013-05-04T01:22:49.110 に答える
0

5 行すべてを取得する場合は、Table_two に t_id = 1 の行が 2 つしかないため、where 句を削除する必要があります。

于 2013-05-04T01:23:22.527 に答える