Hello!
I have a query with multiple table joints and where clauses. Tables are huge and query runs for a very long time. I need to run another query, which is exactly the same apart for one Where clause (first time price = "P", second time price = "S"). I use this for BIRT report, which means I need to have a result of there two queries at the same time. I can run them at the same time, but because they are both huge it takes a Long time. I wonder if I can make only one query, will it be faster? And if it will- what’s the best way to make it?
Thank you for your help!
Please let me know if it is not clear.

Recommended Answers

All 3 Replies

Since you want to run exactly the same query and check only for one condition, you can do it this way.

$query="select * from huge_table where conditions joins etc";
$result=mysql_query($query);
$price_p=array();
$price_s=array();
while($row=mysql_fetch_array($result,MYSQL_ASSOC)){
   if($row['price']=="P"){
       array_push($price_p,$row['price']);
   }
   if($row['price']=="S"){
       array_push($price_s,$row['price']);
   }
}

So, by the end of the execution of this query, you will have 2 arrays, 1 with price=p values and the other with price=s values.

Cheers,
Naveen.

Thank you for your reply, but i wasn't clear.
Roughly my code:

Select * FROM sales_item d



join (select str_to_date('2007-09-30', '%Y-%m-%d') st_date) v



join item_store f on f.item_no=d.item_no and f.store_id = d.store_id



join item_sellprice_store a on f.item_no=a.item_no and f.store_id = a.store_id



join item b on f.item_no=b.item_no



join item_supplier c on b.item_no=c.item_no and b.supplier_no=c.supplier_no



join item_sellprice_storegroup g on a.batch_id=g.batch_id





join store k on f.store_id =k.store_id



where d.store_id = '011'



and (f.item_status ='A' or f.item_status ='O')



and a.price_type='P'



and a.effective_start_date < v.st_date < a.effective_end_date



and d.sale_date = v.st_date



order by d.category_code, a.sell_gst, a.item_no ;

And the second one is exactly the same apart from highlighted line (it▓s a.price_type='S')

I need a query, not a script.
Thank you so much.

Umm.. I didnt get you. Do you type this query in phpmyadmin/mysql prompt directly without using a php interface ? How do you generate a BIRT report ?What I said was, remove the condition and a.price_type='P' . Then compare the result with the price_type.

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.