【发布时间】:2022-01-10 01:03:00
【问题描述】:
我有一个非常简单的数据结构,只有 3 个表:
- 请求
- 员工
- 团队
基本上,我需要将 2 个不同的 SQL 选择连接成一个(这样查询就可以只返回一行)。
如果有员工与请求相关联,则返回他们的姓名(职务)并将其与“/”连接。
然后,如果有负责该请求的团队,也返回其标题。
最后,将这两个属性合并为一个
我能做的最好的就是:
(SELECT CONCAT(e.title, ' / ') FROM employees AS e
WHERE e.id = (SELECT r.resposible_employee_id FROM requests AS r WHERE r.id = 1))
UNION
(SELECT t.title FROM teams AS t
WHERE t.id = (SELECT r.responsible_team_id FROM requests AS r WHERE r.id = 1))
但它返回 2 行而不是 1 行
我可以通过两次查询数据库来单独进行连接,但这不是我想要的。我只想查询数据库一次。
为了您的方便,这里是SQL Fiddle
查询应该只返回一行
John Doe / Johns team
提前致谢
【问题讨论】:
-
感谢您提供的示例小提琴,但是单行可能不足以准确说明全部要求?
标签: sql sql-server select union