Mysql
 sql >> база данни >  >> RDS >> Mysql

Как мога да направя ПЪЛНО ВЪНШНО ПРИСЪЕДИНЕНИЕ в MySQL?

Нямате пълни присъединявания в MySQL, но можете със сигурност да ги емулирате .

За извадка на код транскрибирано от този въпрос за препълване на стека имате:

С две таблици 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

Заявката по-горе работи за специални случаи, когато пълно външно присъединяване операцията няма да доведе до дублиращи се редове. Заявката по-горе зависи от UNION оператор set за премахване на дублиращи се редове, въведени от модела на заявката. Можем да избегнем въвеждането на дублиращи се редове, като използваме против присъединяване шаблон за втората заявка и след това използвайте оператор за набор UNION ALL, за да комбинирате двата набора. В по-общия случай, когато пълно външно свързване би върнало дублирани редове, можем да направим това:

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. CURDATE() Примери – MySQL

  2. PDO::fetchAll срещу PDO::извличане в цикъл

  3. PHP код за конвертиране на MySQL заявка в CSV

  4. Как да създадете последователност в MySQL

  5. LINQ to Entities не разпознава метода 'System.String ToString()' и този метод не може да бъде преведен в израз на магазин