Sql 从联接查询中选择基于单列的唯一数据

Sql 从联接查询中选择基于单列的唯一数据,sql,cucm,Sql,Cucm,质疑 导致 SELECT DISTINCT device.name as device, devicepool.name as devicepool, device.description AS Phone_Description, NumPlan.dNOrPattern as Primary_did, applicationuser.name FROM applicationuser LEFT OUTER JOIN applicati

质疑

导致

SELECT DISTINCT 
    device.name as device,
    devicepool.name as devicepool,
    device.description AS Phone_Description,
    NumPlan.dNOrPattern as Primary_did,
    applicationuser.name
    FROM applicationuser 
    LEFT OUTER JOIN applicationuserdevicemap
        on applicationuserdevicemap.fkapplicationuser = applicationuser.pkid 
    LEFT OUTER JOIN device 
        on device.pkid =applicationuserdevicemap.fkdevice
    LEFT OUTER JOIN DeviceNumPlanMap 
        on DeviceNumPlanMap.fkDevice=Device.pkid 
    FULL JOIN NumPlan 
        on NumPlan.pkid = DeviceNumPlanMap.fkNumPlan AND NumPlan.dNOrPattern NOT LIKE '%#%'
    LEFT OUTER JOIN devicepool
        on device.fkdevicepool = devicepool.pkid 
    WHERE (DeviceNumPlanMap.NumPlanIndex=1 OR DeviceNumPlanMap.NumPlanIndex IS NULL)
        AND device.name like 'SEP%'
        AND device.description NOT LIKE '%IPCOM%'
        AND applicationuser.name='actuser'
    ORDER BY devicepool.name, NumPlan.dNOrPattern
我需要Primaru的结果为NULL或空白。这导致设备列中的条目不唯一,SEP00175A756654重复了两次

所以理想的结果应该是

device          | devicepool| phone_description |   primary_did | name
--------------------------------------------------------------------------
SEPA40CC3956A58 | DBL_Test  | Auto 8964         | 8964          | actuser
SEP00230432ABDC | DP_W00301 | Auto 8968         | 4082600       | actuser
SEP001BD5E86761 | DP_W00301 | SEP001B54520367   | 7001          | actuser
SEP00260B5E1997 | DP_W00301 | Auto 8965         | 8965          | actuser
SEP00175A756654 | DP_W06851 | Dobson,Ronda      |               | actuser
SEP00175A756654 | DP_W06851 | Dobson,Ronda      | 8505998965    | actuser
SEP001B54520367 | DP_WA6201 | SEP001B54520367   |               | actuser

我需要关于如何在这里使用内部联接的解决方案。如果原因也可以解释的话。

你能把问题表述得更清楚些吗?你想达到什么目标?SEP00175A756654行的预期结果是什么?@DanielAndré我正在寻找唯一一组具有相应详细信息的设备。应用完全外部联接和allowinf null导致返回多个结果。更新了预期结果。
其中primary_不为空
?然而,你确定你需要
外部连接吗?我想说的是,你不能按照你想要的方式来完成。问题不在联接/查询中。每个设备都可以与1个或多个主did关联(根据您的说法,空值作为有效did计算),因此结果中始终有1个或多个条目。你可以试着把所有的初级课程集中在同一个地方entry@schenck不需要外部联接。我是在无法获取空值时这样做的。我将编辑它。你建议的条件应该是最后一个条件或者在某个连接处。
     device         | devicepool| phone_description |   primary_did | name
    --------------------------------------------------------------------------
    SEPA40CC3956A58 | DBL_Test  | Auto 8964         | 8964          | actuser
    SEP00230432ABDC | DP_W00301 | Auto 8968         | 4082600       | actuser
    SEP001BD5E86761 | DP_W00301 | SEP001B54520367   | 7001          | actuser
    SEP00260B5E1997 | DP_W00301 | Auto 8965         | 8965          | actuser
    SEP00175A756654 | DP_W06851 | Dobson,Ronda      | 8505998965    | actuser
    SEP001B54520367 | DP_WA6201 | SEP001B54520367   |               | actuser