2013-03-19 2 views
-1

Как написать в codeigniter в активной записи следующий запрос?Codeigniter где in и replace Подзапрос

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); 

моя проблема (а) от выбора одного является отчет, который должен быть заменить как заменить пространство быть запятой или, может быть, я ошибаюсь :(,
другой я использую str_replace, но все же не так,

выборки данных а из выбора одного является
222.111.444
333.444

заменить 222,111,444,333,444,555,666

даже я новичок в CodeIgniter Цените любой помогает и простите за мой английский.
Спасибо.

ответ

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"); 

надеюсь, что это поможет!

+0

Могу ли я задать еще один вопрос :), как заставить его стать кнопкой загрузки в csv. потому что возможно сделать вид со многими данными. Я очень новичок в кодеригенере, поэтому, пожалуйста, вы можете сделать код для этого :) –

+0

@AhmanHida Я думаю, что это совершенно другой вопрос, для получения дополнительной информации обратитесь к этой ссылке http: // stackoverflow .com/questions/5634592/download-a-csv-file-direct-to-the-users-download-folder – sandip

+0

@AhmanHida, пожалуйста, отметьте ответ, если это вам помогло! – sandip

0

Вы используете это неправильно. Должно быть место после тега, где

$this->db->where('tag >=',$date1); 
$this->db->where('tag <=',$date2);