如何在mysql中使用左外连接匹配两个不同列的id

时间:2015-09-06 08:23:48

标签: mysql

select 
    pe.fk_id_produto,
    pe.qt_unitaria,
    er.FK_produto,
    IFNULL(er.quantidade_recebida,0) AS quantidade_recebida
from tblprodutoencomendado as pe 
left outer join tblencomendarecebida er on er.FK_encomenda = pe.FK_num_encomenda  
where fk_id_produto IN(SELECT FK_produto FROM tblencomendarecebida WHERE fk_encomenda = 13) or fk_num_encomenda = 13 
group by fk_id_produto asc;

----------------------------------------------------------------
RESULT OF THIS QUERY

FK_id_produto qt_unitaria FK_produto quantidade_recebida 
------------- ----------- ---------- ------------------- 
13            17          NULL       NULL                   
16            44          13         32                  
15            15          NULL       NULL
20            10          20         10

我想要的是什么:

FK_id_produto qt_unitaria FK_produto quantidade_recebida 
------------- ----------- ---------- ------------------- 
13            17          13         32 
15            15          NULL       NULL          
16            44          NULL       NULL
20            10          20         10         

我已经尝试了几乎所有的东西......任何人都可以帮忙吗?提前谢谢

1 个答案:

答案 0 :(得分:0)

看起来您的加入不在正确的字段

select 
    pe.fk_id_produto,
    pe.qt_unitaria,
    er.FK_produto,
    IFNULL(er.FK_produto,0) AS quantidade_recebida
from tblprodutoencomendado as pe 
left outer join tblencomendarecebida er on er.FK_produto = pe.fk_id_produto
group by fk_id_produto asc;