sql >> Database >  >> RDS >> Mysql

Hoe kan ik een FULL OUTER JOIN doen in MySQL?

Je hebt geen volledige deelnames in MySQL, maar je kunt er zeker van zijn dat ze emuleert .

Voor een code voorbeeld getranscribeerd van deze Stack Overflow-vraag je hebt:

Met twee tabellen 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

De bovenstaande query werkt voor speciale gevallen waarin een volledige outer join bewerking zou geen dubbele rijen opleveren. De bovenstaande vraag is afhankelijk van de UNION set-operator om dubbele rijen te verwijderen die zijn geïntroduceerd door het querypatroon. We kunnen voorkomen dat dubbele rijen worden ingevoerd door een anti-join . te gebruiken patroon voor de tweede query en gebruik vervolgens een set-operator UNION ALL om de twee sets te combineren. In het meer algemene geval, waar een volledige outer join dubbele rijen zou opleveren, kunnen we dit doen:

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. Een tabel maken in MySQL

  2. Verzameltijden van Spotlight Cloud-alarmen

  3. 50 Shades of Oracle Database-certificeringsexamen

  4. Hoe u het aantal dagen in een maand in MySQL kunt krijgen