2014-01-23 2 views
1

я следующий MySQL Queryподзапросов в регистрации в CodeIgnitier

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 

я хочу, чтобы преобразовать часть, содержащую подзапрос в codeignitier образом присоединиться. что следующая

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

+0

[Здесь] (http://stackoverflow.com/questions/11023318/using-mysql-where-in-clause-in-codeigniter/11031431#11031431) является ответом –

ответ

4

это так просто сделать это следующим образом

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

SIMPLE ..! :)

+0

РАБОТАЕТ СОВЕРШЕННО !!! спасибо @saadk – saad

Смежные вопросы