MySQL中Full Outer Join查询报错如何解决?
解决MySQL不支持FULL OUTER JOIN的问题
MySQL本身不支持FULL OUTER JOIN语法,这是你执行查询报错的原因。可以通过LEFT JOIN与RIGHT JOIN结合UNION的方式实现相同效果:
SELECT s.stu_name, g.grade FROM students s LEFT JOIN grades g ON s.id = g.student_id UNION SELECT s.stu_name, g.grade FROM students s RIGHT JOIN grades g ON s.id = g.student_id;
说明:
LEFT JOIN:保留students表的所有记录,关联匹配grades表的对应记录,无匹配时g.grade为NULLRIGHT JOIN:保留grades表的所有记录,关联匹配students表的对应记录,无匹配时s.stu_name为NULLUNION:合并两个查询结果并自动去除重复的匹配记录,最终得到与FULL OUTER JOIN一致的结果——包含所有学生和所有成绩记录,无论两边是否存在关联匹配
内容的提问来源于stack exchange,提问作者Abdullah Asif
相关产品推荐
相关产品推荐

