mysql - 从单个查询中获取不同的列

标签 mysql sql

考虑下表中存储的有关项目和成员的数据。项目(id,标题)成员(id,名称,project_id)生成报告以列出所有项目以及参与这些项目的成员。还列出尚未分配任何员工的项目以及可作为免费资源使用的员工。

表-

Projects(id, title)
    
Members(id, name, project_id)

有人可以优化查询,因为我应用了外连接并且我得到了所有答案。我需要根据所需的问题分隔列。

Select  p.title, m.id
From projects p FULL OUTER JOIN 
     Members m 
where p.id = m.project_id;

最佳答案

MySQL 不支持完全连接。因此,请分两步执行此操作:

Select p.title, m.id
From projects p LEFT JOIN 
     Members m 
     ON p.id = m.project_id
union all
select null, m.id
from members m
where not exists (select 1 from projects p where p.id = m.project_id);

关于mysql - 从单个查询中获取不同的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59949706/

相关文章:

java - HQL 案例当错误意外 AST 节点 : CASE near line 1

php - 如何创建 jquery 表?

mysql - MySQL DECLARE 中的 SELECT INTO 变量导致语法错误?

mysql - 合并一个日期时间的日期和另一个日期时间的时间

php - 格式化网址

mysql - 如何使用 MySQL 存储和改变位图/位集?

mysql - 列名和撇号

具有 OR 的 SQL 查询比 2 个单独的查询慢得多

MySQL - GROUP BY 并仅显示重复项

mysql - 在连接表上删除时设置为空