Problem with joining 2 mysql queries and displaying them using php

Hi All,

I am new to php and mysql and started learning. I have a small prob with the below queries. Plz have a look and do me the needful or give me a suggestion.

Below is my code to add the two different query results into one. This is working fine when both the queries have same no.of rows.

eg: row1 = 1 2 3 (Query1)

   row2 = 3 5 5 (Query2)

     o/p:    4 7 8

Let’s say, I have few rows which are not exactly matched with first query.

eg: row1 = 1 2 3 2 (Query1)

  row2 = 3 empty empty  5   (Query2)

o/p : 4 2 3 7 (I want the o/p to be like this)

empty means there is no data from the second query.

In my while, && working fine when the 2 queries have same no.of rows.

while (($row1 = mysql_fetch_assoc($rs1)) && ($row2 = mysql_fetch_assoc($rs2)))
{

$strHtml .= “

”;

$strHtml .= “

”.($row1[‘Calls’]+$row2[‘Calls’])."";
$strHtml .= “”.($row1[‘actual_duration(min)A’]+$row2[‘actual_duration(min)A’])."";
$strHtml .= “”.($row1[‘call_usage’]+$row2[‘call_usage’])."";
$strHtml .= “”.($row1[‘disconnection_charge’]+$row2[‘disconnection_charge’])."";
$strHtml .= “”.($row1[‘total_revenue’]+$row2[‘total_revenue’])."";

$strHtml .= “

”;

}

Is the while loop i am using correct or there is any other better solution for this?

please help me, Thanks in advance.

Hi,

You are using && means and that mean to run the code both the condition should be true and I think that the problem use || means or you might get what you want

Hi,

Thanks for the reply. But, when using || it’s not summing the 2 query results. It’s just displaying the 2 query results separately.

Hi there,

If you let me know the tables and fields involved, I can tell you whether or not an idea i’ve had will work for you.

I have 2 queries which are as follows.

The first query is:
select a.tu_call_date, sum(a.calls) as Calls, round(a.actual_duration,2) as actual_duration(min)A, round(b.mrcost,2) as mrcost,
from
(select tu_call_date, sum(tu_no_of_call) as calls, sum(tu_usage_usd) as call_usage,
from db.zzz
group by tu_call_date) a
inner join
(select call_date, sum(mrcost) as mrcost, sum(duration) as actual_duration
from db.xxx inner join yyy
on partner_code = tp_partner_code
group by call_date, tp_account_group) b
on a.tu_account_group = b.tp_account_group
and a.tu_call_date = b.call_date
where a.tu_account_group = ‘aaa’
group by a.tu_call_date
order by a.tu_call_date

and the second query is

select a.tu_call_date, sum(a.calls) as Calls, (round(a.actual_duration,2)) as actual_duration(min)A, round(b.mrcost,2) as mrcost,
from
(select tu_call_date, sum(tu_no_of_call) as calls, sum(tu_usage_usd) as call_usage
from zzz
group by tu_call_date) a
inner join
(select call_date, sum(mrcost) as mrcost, sum(duration) as actual_duration
from kkk inner join yyy
on partner_code = tp_partner_code
where and partner_code in (‘a’, ‘b’)
and destination_id in
(
select destination_no from abc
)
group by call_date, tp_account_group) b
on a.tu_account_group = b.tp_account_group
and a.tu_call_date = b.call_date
where a.tu_account_group = ‘bbb’
group by a.tu_call_date

So, now i want to add the no.of calls,actual duration etc from the 2 queries and display them using php.

For Eg: The ‘Calls’ from query1 is 20 and ‘Calls’ from query2 is 30 then I want to print ‘Calls’ as 50

Thanks in advance

Sponsor our Newsletter | Privacy Policy | Terms of Service