tables outer joins full ejemplos ejemplo sql mysql union full-outer-join

joins - MySQL: FULL OUTER JOIN-¿Cómo fusiono una columna?



union mysql (3)

Utilizar:

SELECT t1.id, t1.value, t2.value2 FROM table1 t1 LEFT JOIN table2 t2 ON t2.id = t1.id UNION SELECT t2.id, t1.value, t2.value2 FROM TABLE1 t1 RIGHT JOIN TABLE2 t2 ON t2.id = t1.id

El operador UNION elimina los duplicados de filas / registros, por lo que debe definir / listar las columnas de manera adecuada.

Guiones:

DROP TABLE IF EXISTS `example`.`table1`; CREATE TABLE `example`.`table1` ( `id` int(10) unsigned NOT NULL default ''0'', `value` varchar(45) NOT NULL default '''' ) ENGINE=InnoDB DEFAULT CHARSET=latin1; INSERT INTO table1 VALUES (1, ''a''), (2, ''c''), (3, ''e''); DROP TABLE IF EXISTS `example`.`table2`; CREATE TABLE `example`.`table2` ( `id` int(10) unsigned NOT NULL default ''0'', `value2` varchar(45) NOT NULL default '''' ) ENGINE=InnoDB DEFAULT CHARSET=latin1; INSERT INTO table2 VALUES (1, ''b''), (3, ''d''), (4, ''f'');

Edición: línea fija arriba

Queridos todos,
En primer lugar, me gustaría agradecer a las personas que responden preguntas en esta página por el excelente trabajo que están haciendo aquí. No tengo mucha experiencia en programación y esta página ha sido de gran ayuda para mí.

Ahora vengo a mi pregunta específica con respecto a una JUNTA EXTERNA COMPLETA en MySQL. Tengo dos (o más mesas):

table1 table2 id value id value2 1 a 1 b 2 c 3 d 3 e 4 f

He usado esta consulta para obtener mi unión:

SELECT * FROM table1 LEFT OUTER JOIN table2 ON table1.`id`=table2.`id` UNION SELECT * FROM table1 RIGHT OUTER JOIN table2 ON table1.`id`=table2.`id`

Llegar:

id value1 id value2 1 a 1 b 2 c NULL NULL 3 e 3 d NULL NULL 4 f

Mi problema es que no logro colapsar simultáneamente las dos columnas de ID en una columna para obtener esto:

id value1 value2 1 a b 2 c NULL 3 e d 4 NULL f

¿Alguna sugerencia sobre cómo hacerlo?


Por lo que creo que estás tratando de hacer, te sugeriría que utilices una COMPLECIÓN EXTERNA COMPLETA en su lugar:

SELECT ISNULL(t1.id, t2.id) AS id, t1.value1, t2.value2 FROM table1 t1 FULL OUTER JOIN table2 t2 ON t1.id = t2.id


SELECT COALESCE(t1.id, t2.id) as id, t1.value1, t2.value2 FROM table1 t1 FULL JOIN table2 t2 ON t1.id = t2.id;