Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql SQL连接查询选择_Mysql_Sql_Join - Fatal编程技术网

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我想数一数有多少产品在运作