在一个表中找到与另一个表中的配对相对应的非现有值

时间:2016-05-23 13:01:22

标签: mysql

我正在使用两张桌子。第一个表称为temp6,列标记为bsite,bsector,msite,msector,esite,esector,bpn,epn。第二个表称为homdatapairs,其列标记为fromcell,fromsector,tocell,tosector,hocount,percentage。

目标是生成一个由bsite,bsector,msite,msector,hocount和percentage组成的表。我遇到的问题是,在homdatapairs表中不存在bsite,bsector,msite,msector的配对。所以逻辑上它应该返回bsite,bsector,msite,msector,hocount和百分比,在hocount和百分比中留下NULL值,但它根本不返回任何内容(也没有发生错误)。

这是我的问题:

SELECT t6.bsite
     , t6.bsector
     , t6.msite
     , t6.msector
     , IFNULL(p.hocount, 0)
     , IFNULL(p.percentage, 0)
  FROM homdatapairs p
     , temp6 t6
 WHERE t6.bsite = p.fromcell 
   AND t6.bsector = p.fromsector 
   AND t6.msite = p.tocell 
   AND t6.msector = p.tosector;

1 个答案:

答案 0 :(得分:0)

我能够弄清楚。这是有效的查询。

SELECT DISTINCT t6.bsite, t6.bsector, t6.msite, t6.msector, IF(t6.msite = p.tocell AND t6.msector = p.tosector, IFNULL(p.hocount,0), 0), IF(t6.msite = p.tocell AND t6.msector = p.tosector, IFNULL(p.percentage, 0), 0)
FROM homdatapairs p, temp6 t6
WHERE t6.bsite = p.fromcell AND t6.bsector = p.fromsector;