1
我奮力創建活動記錄語句來完成我想要的東西,這是我當前的嘗試:SQL語句 - 如何在活動記錄中執行此操作?
$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,所以它可能有點錯,但希望你能得到我想要做的。
你會想看看[this](https://github.com/NTICompass/CodeIgniter-Subqueries)。 –
我想這將是計劃B,但肯定有一種方法可以在AR – WebweaverD
中執行此操作,然後按計劃B進行。CodeIgniter Active Record不適用於子查詢。所以,不,在AR中沒有辦法做到這一點。至少不是沒有對核心文件進行一些修改。 –