¿Se puede realizar una consulta SQL así?

  • Autor Autor xcodex
  • Fecha de inicio Fecha de inicio
X

xcodex

Hola!, necesito hacer una consulta SQL desde PHP pero no estoy seguro se se podrá hacer.

Tengo (a modo de ejemplo):
Tabla 1 (id, nombre, apellido, dirección)
Tabla 2 (id, nombre, otro nombre, otro nombre 33)
Tabla 3 (id, nombre, otro nombre 44, otro nombre 55)

Se que INNER JOIN se puede utilizar siempre y cuando las tablas sean iguales. Se que mis 3 tablas son distintas, pero solo necesito id y nombre que son comúnes a todas.
¿Hay alguna manera de hacer esto?.
 
 
Probé como allí dice y no me funciona:
SELECT id,nombre FROM tabla1 UNION SELECT id,nombre FROM tabla2
 
No entendí bien ¿Quieres algo como esto?:

(SELECT id, nombre FROM tabla1) UNION (SELECT id, nombre FROM tabla2)

Por si acaso, probé el código en una BD hace un momento y me devuelve bien todo.

kj
 
Ya me funcionó, había puesto un símbolo mal.
Lo que me parece raro es que según leí para que funciones el UNION / UNION ALL las tablas tienen que tener los mismos campos, y sin embargo me funcionó correctamente a pesar de que en mis tablas sean distintos.
¿Será porque solo llamo a los que son iguales?, pregunto por si esto puede llegar a dar problemas a futuro.
 
Ya me funcionó, había puesto un símbolo mal.
Lo que me parece raro es que según leí para que funciones el UNION / UNION ALL las tablas tienen que tener los mismos campos, y sin embargo me funcionó correctamente a pesar de que en mis tablas sean distintos.
¿Será porque solo llamo a los que son iguales?, pregunto por si esto puede llegar a dar problemas a futuro.

No tienen que ser iguales las tablas, tienen que ser iguales las selecciones. Seguramente el que escribió eso que leiste era alguien que llegó a esa conclusión porque solo usaba "*" en los select o porque llama solo "tabla" a la tabla resultante de la consulta.

De hecho, incluso si en la tabla las columnas tienen un nombre distinto puedes hacer algo como esto:

(SELECT id, username as nombre FROM tabla1) UNION (SELECT id, motivo as nombre FROM tabla2)

Con eso las selecciones ya serían iguales y podrías unirlas.

kj
 
¡Muchas gracias!, como siempre en Forobeta me salvan la vida 😎
 
Atrás
Arriba