有没有理由MySQL不支持FULL OUTER JOINS?

Imr*_*ran 18 mysql sql

有没有理由MySQL不支持FULL OUTER JOINS?我已经在mysql中尝试过多次完全外连接语法而且从来没有用过,只是发现它不受mysql支持所以只是好奇为什么?

Mar*_*ers 22

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

此功能于2006 年提出,但仍未实施.我猜它具有低优先级,因为你可以通过将LEFT和RIGHT OUTER JOIN与UNION ALL组合来解决它.不愉快,但它的确如此.改变这个:

SELECT *
FROM table1
FULL OUTER JOIN table2
ON table1.table2_id = table2.id
Run Code Online (Sandbox Code Playgroud)

对此:

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
Run Code Online (Sandbox Code Playgroud)

*为了公平对待MySQL,它们还具有许多其他数据库所没有的功能.


bob*_*nce 5

我不相信 MySQL 开发人员曾经说过任何可能难以实施的技术原因。

但MySQL和大多数DBMS一样,有很多地方没有完全实现ANSI标准。由于 FULL OUTER JOIN 是一个很少使用的功能,并且通常可以用 UNION 解决方法代替,因此修复它的压力很小。

我建议将您的声音添加到bug 18003中。