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