qq_40594061
2018-06-12 17:53
采纳率: 66.7%
浏览 800

mysql小问题,求大佬解答

select *
from (select id, sum(degree)
from employee_skill
group by id
)as t1 full outer join
(select id, sum(score)
from project_employee
group by id
)as t2
where t1.id = t2.id

这段 sql 语句 不知道为什么 不能使用 全外连接,如果是内连接的话,语句是没有问题的
希望大佬能解答一下

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

8条回答 默认 最新

  • 邪恶八进制 2018-06-13 00:35
    已采纳

    mysql 是不支持全外连接的,可以使用union all进行替换

    已采纳该答案
    评论
    解决 无用
    打赏 举报
  • sinat_35477619 2018-06-13 00:13

    应该是数据库本身的规定

    评论
    解决 无用
    打赏 举报
  • VIVIAN_WO 2018-06-13 00:58

    用JOIN 一样的效果,换个方式把

    评论
    解决 无用
    打赏 举报
  • 强化脑细胞 2018-06-13 01:11

    mysql不支持全外连接,试着用以下,left join + right join union 替换 full outer join
    SELECT * FROM t1
    LEFT JOIN t2 ON t1.id = t2.id
    UNION
    SELECT * FROM t1
    RIGHT JOIN t2 ON t1.id = t2.id

    评论
    解决 无用
    打赏 举报
  • 路漫漫兮其修远兮 2018-06-13 01:24
    select *
    from (select id, sum(degree)
    from employee_skill 
    group by id
    )as t1
    UNION ALL
    (select id, sum(score)
    from project_employee
    group by id
    )as t2
    where t1.id = t2.id
    
    评论
    解决 无用
    打赏 举报
  • 小千哥哥 2018-06-13 02:39

    你这个mysql不支持全外连接,你可以用这个,left join + right join union 来替换 full outer join

    评论
    解决 无用
    打赏 举报
  • Z979797 2018-06-13 03:10

    outer join则会返回每个满足第一个(顶端)输入与第二个(底端)输入的联接的行。它还返回任何在第二个输入中没有匹配行的第一个输入中的行。
    通常我们省略outer 这个关键字。写成:LEFT/RIGHT/FULL JOIN。

    评论
    解决 无用
    打赏 举报
  • 一见你就乐 2018-06-14 01:20

    select *
    from (select id, sum(degree)
    from employee_skill
    group by id
    )as t1 full join
    (select id, sum(score)
    from project_employee
    group by id
    )as t2
    where t1.id = t2.id

    试试关键词用法

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题