-1

次のクエリをアクティブ レコードの codeigniter に書き込むにはどうすればよいですか?

SELECT
  time AS date,
  user AS name
FROM b_table
WHERE id IN(SELECT
          a
        FROM a_table
        WHERE group = $group
        AND tag >= '$date1'
        AND tag <= $date2')

これは私が出てくるものですが、それは仕事をしません。

$this->db->select('a');
$this->db->from('a_table');
$this->db->where('group',$group);
$this->db->where('tag>=',$date1);
$this->db->where('tag<=',$date2);

$subQuery = $this->db->_compile_select();
$this->db->_reset_select();

$this->db->select('time AS date, user AS name');
$this->db->from('b_table');
$this->db->where_in($subQuery);

私の問題は、(a)選択したものから、スペースをコンマに置き換えるように置き換える必要があるレコードです。または、間違っているかもしれません:(、
別のstr_replaceを使用しますが、それでも間違っています。

選択したものからのサンプルデータは
222,111,444
333,444 555,666

222,111,444,333,444,555,666
に置き換えます

私はcodeigniterの初心者でさえ、助けに感謝し、私の英語に申し訳ありません。
ありがとう。

4

2 に答える 2

1

これを試して:

 ->where() 

任意の文字列を渡すことをサポートし、クエリで使用します。

したがって、上記は次のようになります。

 $this->db->select('time AS date,user AS name')->from('b_table');
 $this->db->where_not_in('id', "SELECT a FROM a_table WHERE group = $group AND tag >= '$date1' AND tag <= $date2");

それが役立つことを願っています!

于 2013-03-19T08:58:09.517 に答える
0

これを間違った方法で使用しています。タグの後にスペースが必要です

$this->db->where('tag >=',$date1);
$this->db->where('tag <=',$date2);
于 2013-03-19T10:12:49.833 に答える