通过mysql将两个查询合并在一起

时间:2015-11-16 15:32:31

标签: mysql

我想将两个查询合并在一起,但我不知道如何!

首先查询:

D[n][X]
  

我在此查询中有工作。

first table

第二次查询:

SELECT tablesite.name,
           tablesite.family,
           job_list.job_name,
           tablesite.phone_number
           FROM  tablesite 
           INNER JOIN relation
           on tablesite.id_user=relation.user_id
           INNER JOIN job_list
           on relation.job_id=job_list.job_id 

此表的结果如下:

  

我在第二个查询中的COUNT(action.service_provider_id)时有COUNT(action.service_provider_id)

result of second table

合并这两个表之后,结果必须是这样的:

我用油漆做了这个:p:D

final table

  

使用过的表格

tablesite:

tablesite

动作:

action

关系:

relation

job_list:

enter image description here

  sasha试过这个:   enter image description here

1 个答案:

答案 0 :(得分:3)

两个查询的结果可以合并为:

CREATE TEMPORARY TABLE t1 (KEY(name,family,phone_number)) SELECT tablesite.name,
               tablesite.family,
               job_list.job_name,
               tablesite.phone_number
               FROM  tablesite 
               INNER JOIN relation
               on tablesite.id_user=relation.user_id
               INNER JOIN job_list
               on relation.job_id=job_list.job_id;    
SELECT ts.name,
           ts.family,
           ts.phone_number,t1.job_name,
           COUNT(action.service_provider_id)
           FROM tablesite ts JOIN t1 USING(name,family,phone_number)
           LEFT JOIN action
           ON ts.id_user=action.service_provider_id
           AND action.vote !='' AND action.customer_comment =''
           GROUP BY name, family, job_name, phone_number;

可以避免使用子查询来使用临时表,但如果由于子查询结果中缺少连接键而导致结果集很大,则会遇到问题。