Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Czy istnieje powód, dla którego MySQL nie obsługuje FULL OUTER JOINS?

MySQL brakuje wielu funkcji, które mają inne bazy danych*. Myślę, że mają spore zaległości w pomysłach i nie mają wystarczającej liczby programistów, by je wszystkie wdrożyć.

Ta funkcja została poproszona w 2006 r. i nadal nie jest realizowany. Myślę, że ma niski priorytet, ponieważ można go obejść, łącząc LEFT i RIGHT OUTER JOIN z UNION ALL. Nieprzyjemne, ale załatwia sprawę. Zmień to:

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

do tego:

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

* Aby być uczciwym wobec MySQL, mają one również pewne funkcje, których nie ma wiele innych baz danych.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Błąd składni MySQL po przesłaniu formularza

  2. Migracja z SQL Server 2008 R2 do MySQL

  3. Jak wybrać wiersz maksymalnej wartości w tabeli mysql?

  4. Jak utworzyć użytkownika z takimi samymi uprawnieniami jak root w MySQL/MariaDB?

  5. Jak ręcznie zarejestrować niestandardowe funkcje SQL w aplikacji Spring Boot?