一尘不染

MySQL不支持FULL OUTER JOINS是否有原因?

sql

MySQL不支持FULL OUTER
JOINS是否有原因?我已经尝试过很多次在mysql中使用完全外部联接语法,但从未奏效,只是发现它不受mysql支持,所以好奇为什么?


阅读 248

收藏
2021-03-17

共1个答案

一尘不染

MySQL缺乏其他数据库具有的许多功能*。我认为他们有大量的想法积压,并且没有足够的开发人员来实现所有想法。

此功能在2006年提出的,目前尚未实现。我认为它的优先级较低,因为您可以通过将LEFT和RIGHT
OUTER JOIN与UNION ALL结合使用来解决此问题。不愉快,但是可以解决问题。更改此:

SELECT *
FROM table1
FULL OUTER JOIN table2
ON table1.table2_id = table2.id

对此:

SELECT *
FROM table1
LEFT JOIN table2
ON table1.table2_id = table2.id
UNION ALL
SELECT *
FROM table1
RIGHT JOIN table2
ON table1.table2_id = table2.id
WHERE table1.table2_id IS NULL

*为了公平起见,MySQL还具有许多其他数据库所没有的某些功能。

2021-03-17