mysql查询从两个表中选择不同的值,并在两个表中使用sum值计数

时间:2016-06-22 08:55:21

标签: php mysql

我在db

中有两个表

1-我想从2个表中选择不同的值

2-我想打印每个值的数量

例如:如果我有t1

t1
--------------
a

a

a

b

T2:

t2
--------------
a

b

c

结果将是:

a (4)

b (2)

c (1)

我试试这个,但它不是我想要的

$sql=mysqli_query($conn,"select db_shopname from tbl_order UNION
SELECT db_shopname FROM tbl_item order by db_shopname asc")
or die(mysqli_error($conn));
$count=mysqli_num_rows($sql);
while($res=mysqli_fetch_array($sql)){
    echo $res['db_shopname'];echo $count ;echo"<br/>";
}

2 个答案:

答案 0 :(得分:0)

您需要UNION ALL而不是UNION。这样,您可以将2个表中的值合并为1个虚拟表。然后,您可以使用GROUP BY子句计算单个值的数量。例如:

select f, COUNT(f) as countf FROM
(select t1.f from t1 union all select t2.f from t2) t
GROUP BY f

SQL Fiddle

在PHP中,您可以使用$res['countf']打印计数

答案 1 :(得分:0)

试试这个:

选择a.t1,将(a.t1)计为cnt(从t1 UNION all中选择t1 从t2选择t2作为t1)a.t1

选择一个组