Mysql SQL连接查询选择
我有以下表格: 表格:产品Mysql SQL连接查询选择,mysql,sql,join,Mysql,Sql,Join,我有以下表格: 表格:产品 -------------------------- id_product | name_product -------------------------- 1 | p1 2 | p2 3 | p3 表格:编号 ----------
--------------------------
id_product | name_product
--------------------------
1 | p1
2 | p2
3 | p3
表格:编号
-----------------------
imei | id_product
-----------------------
56789 | 1
56799 | 2
56713 | 3
表格:操作
----------------------
imei | date
------------------
56789 |31-07-2017
最后我想得到这个结果:
---------------------------------------
name_product | number_operation
---------------------------------------
p1 | 1
p2 | 0
p3 | 0
谢谢这将按产品统计操作数:
select name_product, sum(num_op)
from product p1
left join number n2
on n2.id_product = p1.id_product
left join
(
select imei, count(operation) as num_op
from Operation
group by imei
) x
on x.imei = n2.imei
group by name_product
对于已进行操作的产品数量:
select name_product, count(distinct o3.imei)
from product p1
left join number n2
on n2.id_product = p1.id_product
left join Operation o3
on o3.imei = n2.imei
group by name_product
这将按产品统计操作数:
select name_product, sum(num_op)
from product p1
left join number n2
on n2.id_product = p1.id_product
left join
(
select imei, count(operation) as num_op
from Operation
group by imei
) x
on x.imei = n2.imei
group by name_product
对于已进行操作的产品数量:
select name_product, count(distinct o3.imei)
from product p1
left join number n2
on n2.id_product = p1.id_product
left join Operation o3
on o3.imei = n2.imei
group by name_product
一种可能的解决办法:
SELECT name_product, COUNT(*)
FROM product p
LEFT JOIN number n ON n.id_product = p.id_product
LEFT JOIN operation o ON o.imei = n.imei
GROUP BY p.id_product
一种可能的解决办法:
SELECT name_product, COUNT(*)
FROM product p
LEFT JOIN number n ON n.id_product = p.id_product
LEFT JOIN operation o ON o.imei = n.imei
GROUP BY p.id_product
试试这个代码
尝试此代码只需几个内部联接即可完成此任务。从一个
选择*from product
开始工作。然后根据2个id\u product列将其与number进行内部联接。最后,根据imei的编号和操作,再次进行内部连接。我不确定您想要输出的操作是什么,但是如果它是操作的索引,那么我很抱歉。但我帮不了你。我是postgres用户,我认为SQL对数据库中的元素没有顺序。您想要什么输出?陈述clearly@johnHc我想数一数在运行中的产品有多少您可以通过几个内部联接来完成此任务。从一个选择*from product
开始工作。然后根据2个id\u product列将其与number进行内部联接。最后,根据imei的编号和操作,再次进行内部连接。我不确定您想要输出的操作是什么,但是如果它是操作的索引,那么我很抱歉。但我帮不了你。我是postgres用户,我认为SQL对数据库中的元素没有顺序。您想要什么输出?陈述clearly@johnHc我想数一数有多少产品在运作