我在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/>";
}
答案 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
在PHP中,您可以使用$res['countf']
打印计数
答案 1 :(得分:0)
试试这个:
选择a.t1,将(a.t1)计为cnt(从t1 UNION all中选择t1 从t2选择t2作为t1)a.t1
选择一个组