Sql запрос в CodeIgniter

Станислав
На сайте с 27.12.2009
Offline
258
921

Что не правильно делаю, нужно сравнить две таблицы и сделать выборку

Вот такой вот запрос нужно выполнить

"SELECT t1.* 

FROM TABLE_1 t1, TABLE_2 t2
WHERE t2.tid = $id AND t2.wid = t1.id
ORDER_BY t1.id DESC LIMIT 10";

пишу так

$this->db->where('tid', $cell);

$sql = $this->db->get_where('TABLE_1, TABLE_2', array('wid' => 'id'));
return $sql->result_array();

ничего не выводит (

array

(
)

Вобщем нужно в таблицу TABLE_2 сделать запрос где tid = 100 их около 20, в wid хранятся id записей из таблицы TABLE_1

TABLE_1

id|title

TABLE_2

wid|tid

TABLE_1.id=TABLE_2.wid

Мы там, где рады нас видеть.
A
На сайте с 09.01.2013
Offline
33
#1

Попробуйте так:

$this->db->get_where('table1','table2', array('wid' => 'id'), $limit, $offset);
bay_ebook
На сайте с 28.05.2010
Offline
111
#2

такие вещи лучше делать через join - стразу проблема отпадет.

Нужен прогер на php+mysql+понимание чужего кода? (/ru/forum/540660) Вам сюда PHP-шаман (http://php-shaman.pw/)
Станислав
На сайте с 27.12.2009
Offline
258
#3

крутил вертел, только так заработало

$where = array('id' => 'wid', 'tid' => $cell);


$this->db->limit($num, $st);
$this->db->order_by($order_col, 'DESC');

$this->db->where($where, true, false);
$query = $this->db->get('table1, table2');

return $query->result_array();

но я как понял отключена безопасность sql запроса, пытался другими способами решить, не получилось (

antyan, ваш запрос только сравнивает поля таблиц, такой запрос вроде проходил, но вот если еще одно условие вписываешь где tid = 100 то sql запрос обрубается, причем CI ничего не пишет, никаких ошибок не выводит.

IL
На сайте с 20.04.2007
Offline
435
#4
Ms-Dred:
пытался другими способами решить, не получилось (

+1 за JOIN

$this->db->join('t2','t2.wid=t1.id');

или вообще целиком запрос поместить в

$this->db->select($q);
... :) Облачные серверы от RegRu - промокод 3F85-3D10-806D-7224 ( http://levik.info/regru )

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий