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

Jak mogę wykonać FULL OUTER JOIN w MySQL?

Nie masz pełnych połączeń w MySQL, ale możesz być pewien emulować je .

Kod przykład przepisane z tego pytania o przepełnienie stosu masz:

Z dwoma tabelami t1, t2:

SELECT * FROM t1
LEFT JOIN t2 ON t1.id = t2.id
UNION
SELECT * FROM t1
RIGHT JOIN t2 ON t1.id = t2.id

Powyższe zapytanie działa w szczególnych przypadkach, w których pełne sprzężenie zewnętrzne operacja nie spowoduje powstania zduplikowanych wierszy. Powyższe zapytanie zależy od UNION operator set usuwa zduplikowane wiersze wprowadzone przez wzorzec zapytania. Możemy uniknąć wprowadzania zduplikowanych wierszy, stosując blokadę łączenia dla drugiego zapytania, a następnie użyj operatora zbioru UNION ALL, aby połączyć te dwa zbiory. W bardziej ogólnym przypadku, w którym pełne sprzężenie zewnętrzne zwróciłoby zduplikowane wiersze, możemy to zrobić:

SELECT * FROM t1
LEFT JOIN t2 ON t1.id = t2.id
UNION ALL
SELECT * FROM t1
RIGHT JOIN t2 ON t1.id = t2.id
WHERE t1.id IS NULL


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Zapobiegaj automatycznej inkrementacji InnoDB NA ZDUPLIKOWANYM KLUCZU

  2. Jak sprawdzić, czy zapytanie MySQL zakończyło się powodzeniem w modyfikowaniu danych tabeli bazy danych?

  3. Zainstaluj Mtop (monitorowanie serwera bazy danych MySQL) w RHEL/CentOS 6/5/4, Fedora 17-12

  4. 4 sposoby na wyświetlenie listy wszystkich tabel w bazie danych MySQL

  5. przekonwertuj datę php na format mysql