Преобразование SQL, содержащего подзапрос и несколько условий OR WHERE, в синтаксис активной записи CodeIgniter.Php

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Преобразование SQL, содержащего подзапрос и несколько условий OR WHERE, в синтаксис активной записи CodeIgniter.

Сообщение Anonymous »

Я изо всех сил пытаюсь создать оператор активной записи, чтобы сделать то, что хочу. Вот моя текущая попытка:

Код: Выделить всё

$this->db
->select('*')
->from('item_entries')
->where('is_pick', 'y')
->join('item_categories_rel', 'item_categories_rel.item_id = item_entries.item_id')
->join('item_categories', 'item_categories.cat_id = item_categories_rel.cat_id')
->join('ratings_total', 'ratings_total.item_id = item_entries.item_id')
->where('item_categories.cat_id', $cat_id)
->or_where('parent_id', $cat_id)
->or_where('gparent_id', $cat_id)
->order_by("item_name", "desc");
$query2 = $this->db->get();
if (is_object($query)) {
return $query2->result_array();
} else {
return $query2;
}
Это преобразуется в следующий SQL-код:

Код: Выделить всё

SELECT *
FROM (`item_entries`)
JOIN `item_categories_rel` ON `item_categories_rel`.`item_id` = `item_entries`.`item_id`
JOIN `item_categories` ON `item_categories`.`cat_id` = `item_categories_rel`.`cat_id`
JOIN `ratings_total` ON `ratings_total`.`item_id` = `item_entries`.`item_id`
WHERE `is_pick` =  'y'
AND `item_categories`.`cat_id` =  '3'
OR `parent_id` =  '3'
OR `gparent_id` =  '3'
Теперь то, что мне нужно (хотя я знаю, что не могу создавать временные таблицы в активной записи), эквивалентно этому:

Код: Выделить всё

SELECT *
FROM (
SELECT *
FROM (`item_entries`)
JOIN `item_categories_rel` ON `item_categories_rel`.`item_id` = `item_entries`.`item_id`
JOIN `item_categories` ON `item_categories`.`cat_id` = `item_categories_rel`.`cat_id`
JOIN `ratings_total` ON `ratings_total`.`item_id` = `item_entries`.`item_id`
WHERE `is_pick` =  'y'
AS T
)
WHERE `item_categories`.`cat_id` =  '3'
OR `parent_id` =  '3'
OR `gparent_id` =  '3'
Как получить этот результат в активной записи?
Обратите внимание: я не проверял приведенный выше SQL, поэтому он может быть немного неправильным, но, надеюсь, вы получить то, что я пытаюсь сделать.

Подробнее здесь: https://stackoverflow.com/questions/126 ... codeignite
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Php»