Welcome Guest, Not a member yet? Register   Sign In
Codeigniter querying multiple databases in same query
#2

[eluser]ivantcholakov[/eluser]
If you insist to use the query builder, this example is possible with CI 3.0-dev.

Code:
$po = 'portal.orders';
$pop = 'portal.orderproducts';
$pdd = 'h2g.packages_daily_deal';
$pc = 'portal.customers';

$sql = $this->db
    ->select()
    ->from($po)
    ->join($pop, "$po.id = $pop.order_id", 'inner')
    ->join($pdd, "$pop.product_id = $pdd.crm_id OR $pop.product_id = $pdd.crm_id_thd", 'inner')
    ->join($pc, "$po.customer_id = $pc.id", 'inner')
    ->group_start()
        ->where("$po.brand", '432')
        ->or_where("$po.brand", '123')
    ->group_end()
    ->where("$po.reported_to_mwa <>", 1)
    ->where("$po.status_id", 5)
    ->group_by("$po.id")
    ->order_by("$po.email", 'asc')  // I am guessing the table here.
    ->get_compiled_select();

echo $sql;

/*
SELECT *
FROM `portal`.`orders`
INNER JOIN `portal`.`orderproducts` ON `portal`.`orders`.`id` = `portal`.`orderproducts`.`order_id`
INNER JOIN `h2g`.`packages_daily_deal` ON `portal`.`orderproducts`.`product_id` = `h2g`.`packages_daily_deal`.`crm_id` OR `portal`.`orderproducts`.`product_id` = `h2g`.`packages_daily_deal`.`crm_id_thd`
INNER JOIN `portal`.`customers` ON `portal`.`orders`.`customer_id` = `portal`.`customers`.`id`
WHERE   (
portal.orders.brand  = '432'
OR portal.orders.brand  = '123'
)
AND `portal`.`orders`.`reported_to_mwa` <> 1
AND `portal`.`orders`.`status_id` = 5
GROUP BY `portal`.`orders`.`id`
ORDER BY `portal`.`orders`.`email` ASC
*/


Messages In This Thread
Codeigniter querying multiple databases in same query - by El Forum - 10-24-2013, 07:29 PM
Codeigniter querying multiple databases in same query - by El Forum - 10-25-2013, 02:51 AM
Codeigniter querying multiple databases in same query - by El Forum - 10-31-2013, 09:17 PM
Codeigniter querying multiple databases in same query - by El Forum - 11-01-2013, 11:40 AM



Theme © iAndrew 2016 - Forum software by © MyBB