SQL 联盟加入问题

SQL Union Join Issue

需要 SQL UNION 方面的帮助。

下面列出了 2 个表格。 ListPriorities 包含每个优先级的名称列表。每个 Tasker 都有一个与之关联的优先级。

Table 1: 列表优先级

列:

ListPrioritiesID, ListPrioritiesName, isActive

Table 2:塔斯克

列:

TaskerID, TaskOrderNumber, ListPrioritiesID

在管理区域中,管理员可以添加优先级或删除优先级,从而将 isActive 列从 1 更改为 0。有时 Tasker 具有 Priority已被删除。如果它与相关的 Tasker 相关联,我需要获取活动优先级列表和非活动优先级列表。

这是目前查询的内容:

SELECT ListPrioritiesID, ListPrioritiesName 
FROM ListPriorities
WHERE isActive = 1 

UNION 

SELECT TaskerID, TaskOrderNumber, T.ListPrioritiesID, LP.ListPrioritiesID 
FROM Tasker T
INNER JOIN ListPriorities LP ON T.ListPrioritiesID = LP.ListPrioritiesID
WHERE TaskOrderNumber = 'ABC123'

只有当两个关系具有相同的关系时,您才能在它们之间进行合并schema.In你的情况是模式不相同。

SELECT LP.ListPrioritiesID, LP.ListPrioritiesName 
FROM ListPriorities LP 
WHERE LP.isActive = 1 
   OR LP.ListPrioritiesID IN (SELECT t.ListPrioritiesID 
                              FROM Tasker t 
                              WHERE t.TaskOrderNumber = 'ABC123')