简体   繁体   中英

CI Advanced SQL Query?

Thank for helping me on this question :

http://stackoverflow.com/questions/33182460/mysql-data-collection-multiple-table

And now as I am was novice on framework. Can anyone help me to transform this query into something understand by CodeIgniter 3 and running correctly :

select sales.id, sales.refid, reference.refname, sales.invoice,
sales.itemid, sales.price as sellprice, purchase.price as buyprice,
sales.price - purchase.price as profit from sales
left outer join reference on reference.refid = sales.refid
left outer join purchase on purchase.itemid = sales.itemid

And for addtional question where to place or how to make CI perform multiple query, like this :

INSERT INTO sales VALUES ( null , 001 , 1501 , ss01 , 12000 );
INSERT INTO purchase VALUES ( null , ss01 , 10200 );
UPDATE reference SET purchasedate = now() WHERE refid = 'ss01';

I think no need to convert query to codeigniter.

Just use query() . in CI.

$query = "select sales.id, sales.refid, reference.refname, sales.invoice,
sales.itemid, sales.price as sellprice, purchase.price as buyprice,
sales.price - purchase.price as profit from sales
left outer join reference on reference.refid = sales.refid
left outer join purchase on purchase.itemid = sales.itemid";

$this->db->query($query

If at all you want to convert the query to codeigniter, it should be like this,

$this->db->select("select sales.id, sales.refid, reference.refname, sales.invoice,sales.itemid, sales.price as sellprice, purchase.price as buyprice,sales.price - purchase.price as profit");
$this->db->join("reference", "reference.refid = sales.refid", "left outer");
$this->db->join("purchase", "purchase.itemid = sales.itemid", "left outer");
$this->db->get("sales");

SECOND PART

Use transactions for this,

$this->db->trans_start();
$this->db->query('AN SQL QUERY...');
$this->db->query('ANOTHER QUERY...');
$this->db->query('AND YET ANOTHER QUERY...');
$this->db->trans_complete(); 

See here for more refernce

Or use mysql_multi_query() ,

See this for mysql_multi_query()

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2025 STACKOOM.COM