Codeigniter CodeIgnitier中的联接中的子查询
我有以下mysql查询Codeigniter CodeIgnitier中的联接中的子查询,codeigniter,join,subquery,Codeigniter,Join,Subquery,我有以下mysql查询 SELECT events.id AS id, A.sold_tickets FROM (`events`) JOIN `category` AS cat ON `events`.`category_id` = `cat`.`id` JOIN `category` AS sub_cat ON `events`.`subCategoryID` = `sub_cat`.`id` JOIN `events_custom_dates`
SELECT
events.id AS id,
A.sold_tickets
FROM (`events`)
JOIN `category` AS cat
ON `events`.`category_id` = `cat`.`id`
JOIN `category` AS sub_cat
ON `events`.`subCategoryID` = `sub_cat`.`id`
JOIN `events_custom_dates` AS events_date
ON `events_date`.`event_id` = `events`.`id`
JOIN `my_promos`
ON `events`.id = `my_promos`.`event_id`
LEFT JOIN `mycalendar`
ON `mycalendar`.`event_id` = `my_promos`.`event_id`
LEFT JOIN `promo_events_stats`
ON `promo_events_stats`.`id` = `events`.`id`
LEFT JOIN (SELECT
my_promos.event_id,
SUM(tickets_sold.quantity) AS sold_tickets
FROM my_promos
JOIN tickets_sold
ON tickets_sold.code = my_promos.link_code
WHERE my_promos.user_id = '532'
AND DATE(my_promos.date) >= '2013-11-01'
AND DATE(my_promos.date) <= '2014-01-22'
GROUP BY my_promos.event_id) A
ON A.event_id = events.id
WHERE `my_promos`.`user_id` = '532'
AND DATE(my_promos.date) >= '2013-11-01'
AND DATE(my_promos.date) <= '2014-01-22'
GROUP BY my_promos.event_id
我想将包含子查询的连接部分转换为CodeIgniter方式。那就是
LEFT JOIN (SELECT
my_promos.event_id,
SUM(tickets_sold.quantity) AS sold_tickets
FROM my_promos
JOIN tickets_sold
ON tickets_sold.code = my_promos.link_code
WHERE my_promos.user_id = '532'
AND DATE(my_promos.date) >= '2013-11-01'
AND DATE(my_promos.date) <= '2014-01-22'
GROUP BY my_promos.event_id) A
ON A.event_id = events.id
我想在codeignitier查询结构中实现这一点就是这么简单,用以下方式实现
$this->db->join('(SELECT my_promos.event_id, SUM(tickets_sold.quantity) AS my_sold_tickets,
(IFNULL(SUM(tickets_sold.price),0)*.10) AS earnings, IFNULL(SUM(tickets_sold.price),0) AS sales
FROM my_promos
JOIN tickets_sold ON tickets_sold.code = my_promos.link_code
WHERE my_promos.user_id = '532' AND DATE(my_promos.date) >= '2013-11-01'
AND DATE(my_promos.date) <= '2014-01-23'
GROUP BY my_promos.event_id) A','A.event_id = events.id', 'left');
简单…: 就是这么简单,用下面的方法来做
$this->db->join('(SELECT my_promos.event_id, SUM(tickets_sold.quantity) AS my_sold_tickets,
(IFNULL(SUM(tickets_sold.price),0)*.10) AS earnings, IFNULL(SUM(tickets_sold.price),0) AS sales
FROM my_promos
JOIN tickets_sold ON tickets_sold.code = my_promos.link_code
WHERE my_promos.user_id = '532' AND DATE(my_promos.date) >= '2013-11-01'
AND DATE(my_promos.date) <= '2014-01-23'
GROUP BY my_promos.event_id) A','A.event_id = events.id', 'left');
简单…: 答案就是答案