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

Wydajny sposób na symulację pełnego sprzężenia zewnętrznego w MySQL?

Możesz użyć LEFT JOIN i RIGHT JOIN:

SELECT * FROM tableA LEFT JOIN tableB ON tableA.b_id = tableB.id
UNION ALL
SELECT * FROM tableA RIGHT JOIN tableB ON tableA.b_id = tableB.id
WHERE tableA.b_id IS NULL

W Wikipedii znajdują się również informacje na ten temat:Pełne sprzężenie zewnętrzne .

Artykuł w Wikipedii sugeruje użycie UNION w MySQL. Jest to nieco wolniejsze niż UNION ALL, ale co ważniejsze, nie zawsze daje poprawny wynik — usunie zduplikowane wiersze z danych wyjściowych. Dlatego wolę używać UNION ALL zamiast UNION.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Czy mogę warunkowo wymusić ograniczenie unikalności?

  2. Atak wstrzyknięcia SQL za pomocą php

  3. MySql wybierz dynamiczne wartości wierszy jako nazwy kolumn

  4. MYSQL Dodaj dni robocze do tej pory

  5. Wydajność SELECT vs UPDATE z indeksem