2010-07-29 8 views
15

MySQL이 FULL OUTER JOINS를 지원하지 않는 이유가 있습니까? 나는 mysql에서 여러 번 완전 조인 구문을 시도해 보았지만 결코 효과가 없었다. mysql에서 지원되지 않는 것을 발견했다. 왜 그렇게 궁금한가?MySQL이 FULL OUTER JOINS를 지원하지 않는 이유가 있습니까?

+0

이 기능은 [at MySql] (http://bugs.mysql.com/bug.php?id=18003&thanks=3¬ify=67) –

답변

22

다른 데이터베이스에는 * 많은 기능이 부족합니다. 나는 그들이 아이디어를 꽤 많이 가지고 있고 그것들을 모두 구현할 수있는 개발자가 충분하지 않다고 생각한다.

2006 년이 기능은 was requested이며 아직 구현되지 않았습니다. LEION과 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로 공정하게, 그들은 또한 많은 다른 데이터베이스에는없는 몇 가지 기능을 가지고 있습니다.

1

MySQL 개발자가 절대로 구현하지 않았기 때문에. 왜? 고객으로부터 충분한 압박감이 없었기 때문에.

+2

+1에 투표 할 수 있습니다. 여기에 인과 관계가 있음을 의심하는 동안 의심의 여지없이 상관 관계가있다. 나는'FULL OUTER JOIN'이 많은 MySql 위시리스트의 최상위에 있다는 것을 의심 스럽다. (레코드의 맨 위에는 실제로 검사되는 CHECK 제약 조건들이있다.) – onedaywhen

0

제품이 완성되면 더 많은 기능이 각 출시마다 추가됩니다. 아직 구현되지 못하고있다. 나는 그것이 결국 거기에있게 될 것이라고 확신합니다, 그것은 MySql이 나쁘다는 것을 의미하지 않으며, 모든 데이터베이스는 여분의 기능과 누락 된 기능을 가지고 있습니다. SQL Server에 MySql에있는 그룹 연결 기능이 있었으면 좋겠습니다.

4

MySQL 개발자가 구현하기 어려운 기술적 인 이유를 언급하지 않았다고 생각합니다.

그러나 대부분의 DBMS와 마찬가지로, MySQL도 ANSI 표준을 완벽하게 구현하지 못하는 곳이 많습니다. FULL OUTER JOIN은 드물게 사용되는 기능이므로 일반적으로 UNION 해결 방법으로 대체 될 수 있습니다.

음성을 bug 18003에 추가하는 것이 좋습니다.

1

대용량 시스템의 경우 일반적으로 한 번 또는 두 번 FULL OUTER JOIN을 사용할 수 있으므로 엄청난 수요가 없으며 주변에서 쉽게 처리 할 수 ​​있습니다. 왼쪽/오른쪽 결과에 따라 파생 된 열을 유추합니다)에 LEFT 및 RIGHT JOIN의 UNION을 사용합니다.

관련 문제