将 3 个表与类似输出的字符串组合在一起的 SQL 查询

标签 sql postgresql

我需要编写一个组合 3 个不同表并以特定方式呈现它们的查询。

  • 表 1:员工
  • 表 2:部门
  • 表 3:汽车

Employees 表有一个联合列用于连接“Department”表(department_id)和“Cars” >' 表(emp_id)。


我需要编写一个查询,根据用户详细信息(包括“部门”和“汽车”表)显示以下数据:

  1. 员工 - 所有列
  2. 部门 - 部门列
  3. Cars - 所有列,但写成字符串文本,用“,”分隔字符串中的每一列

我收到以下查询,但我不知道如何将“Cars”表列打印为字符串:

select
  Employees.*, 
  Departments.department, 
  Cars.* 
from Employee
join department on departments.id = employees.department_id 
join Cars on cars.emp_id = employees.id order by employees.id

最佳答案

我想这就是你想要的:

select e.*,d.*,concat(c.col1,c.col2,c.col3.... ,',')
from Employees e,Departments d,Cars c
where 
e.department_id=d.department_id 
and d.emp_id=e.emp_id
order by e.emp_id;

关于将 3 个表与类似输出的字符串组合在一起的 SQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55797115/

相关文章:

sql - 如何使用参数/变量并一起解释

postgresql - RDS升级postgres 13.1版,不支持的DB Instance Class

SQL:获取连续值的所有变化点

mysql - 计数树表中子项的数量

mysql - 为什么正则表达式的点元字符在 mysql 中不起作用?

java - 在 Java 中插入 SQL

mysql - 'CONSTRAINT 附近的语法错误

sql - pl/pgsql 函数中动态 SQL 的语法错误

SQL/Postgres : Find Tuple with Same Value (for a Given Value in another column)

sql - 我是否在数据库中错误地使用了正则表达式?