2016-01-08 40 views
1

我有2個問題想加入。加入2個表格,並使用相同的值列

第一個是這樣的:

select componentes_process.id_comp_process,componentes_process.id_intervencao,componentes_process.id_equip, componentes_equip.nome, sum(componentes_process.quantidade) as quantidade from manutencao.componentes_equip 
left join manutencao.componentes_process on componentes_process.nome=componentes_equip.nome and componentes_process.id_intervencao=1362 
where id_tipo_equip=1 group by nome order by nome asc; 

+---------------+-------------------------+-------+ 
| id_tipo_equip |   nome   | total | 
+---------------+-------------------------+-------+ 
| 1   | Cabo de comando  | 12 | 
| 1   | Casquilhos de roda  |  3 | 
| 1   | Contactos de contactor |  3 | 
| 1    | Display de código  |  4 | 
| 1    | Escovas de motor  |  5 | 
+---------------+-------------------------+-------+ 

第二個看起來像這樣:

select id_tipo_equip,componentes_equip.nome,sum(componentes_process.quantidade) as total from manutencao.componentes_equip 
left join manutencao.componentes_process on componentes_process.nome=componentes_equip.nome 
left join manutencao.intervencao_process on intervencao_process.id_intervencao=componentes_process.id_intervencao 
left join manutencao.processos on processos.id_process=intervencao_process.id_process and intervencao_process.id_process=639 
where id_tipo_equip='1' group by nome order by nome asc; 


+-----------------+-----------------+-----------+------------------------+------------+ 
| id_comp_process | id_intervencao | id_equip |   nome   | quantidade | 
+-----------------+-----------------+-----------+------------------------+------------+ 
| 1151   | 1362   | 10  | Cabo de comando  | 1   | 
| 1152   | 1362   | 10  | Casquilhos de roda | 1   | 
| NULL   | NULL   | NULL  | Contactos de contactor | NULL  | 
| NULL   | NULL   | NULL  | Display de código  | NULL  | 
| NULL   | NULL   | NULL  | Escovas de motor  | NULL  | 
+-----------------+-----------------+-----------+------------------------+------------+ 

我已經試過這種方式,但沒有成功:

select componentes_process.id_comp_process,componentes_process.id_intervencao,componentes_process.id_equip, componentes_equip.nome, componentes_process.quantidade,sum(componentes_process.quantidade) as total from manutencao.componentes_equip 
    left join manutencao.componentes_process on componentes_process.nome=componentes_equip.nome and componentes_process.id_intervencao=1362 
    left join manutencao.intervencao_process on intervencao_process.id_intervencao=componentes_process.id_intervencao 
    left join manutencao.processos on processos.id_process=intervencao_process.id_process and intervencao_process.id_process=639 
where id_tipo_equip='1' group by componentes_equip.nome ORDER BY componentes_equip.nome; 

回答

0

您可以將每個查詢用作派生表並加入它們:

SELECT ta.*, tb.* FROM 

(select componentes_process.id_comp_process,componentes_process.id_intervencao,componentes_process.id_equip, componentes_equip.nome, sum(componentes_process.quantidade) as quantidade from manutencao.componentes_equip 
left join manutencao.componentes_process on componentes_process.nome=componentes_equip.nome and componentes_process.id_intervencao=1362 
where id_tipo_equip=1 group by nome) ta 

INNER JOIN 

(select id_tipo_equip,componentes_equip.nome,sum(componentes_process.quantidade) as total from manutencao.componentes_equip 
left join manutencao.componentes_process on componentes_process.nome=componentes_equip.nome 
left join manutencao.intervencao_process on intervencao_process.id_intervencao=componentes_process.id_intervencao 
left join manutencao.processos on processos.id_process=intervencao_process.id_process and intervencao_process.id_process=639 
where id_tipo_equip='1' group by nome) tb on ta.nome=tb.nome 
+0

謝謝@GGGforce。 – edbird88

+0

不客氣。如果這確實是正確的,請接受我的回答作爲正確答案。 ;) – GGGforce

相關問題