繁体   English   中英

SQL 联合加入问题

[英]SQL Union Join Issue

在 SQL UNION方面需要帮助。

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

表 1:列表优先级

列:

ListPrioritiesID, ListPrioritiesName, isActive

表 2:塔斯克

列:

TaskerID, TaskOrderNumber, ListPrioritiesID

在管理区域中,管理员可以添加优先级或删除将isActive列从 1 更改为 0 的优先级。有时, TaskerPriority已被删除。 如果它与相关的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'

只有当它们具有相同的架构时,您才能在两个关系之间进行联合。在您的情况下,架构不相同。

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')

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM