sql >> Base de Datos >  >> RDS >> Mysql

mysql union columnas incorrectas en el resultado

Trabajos sindicales por columna posición Sin nombre. Pero no ha especificado la posición de la columna porque lo hizo * por lo que la base de datos lo selecciona en algún orden, pero usted no lo selecciona.

El nombre del conjunto de resultados final es el nombre de las columnas en la primera consulta de la unión.

La solución es fácil:escriba los nombres de todas las columnas que desee y asegúrese de mantener el orden coherente entre las tres consultas.

Las columnas NO están ordenadas por nombre (por lo que cambiar el nombre de las columnas no le ayudará), el orden es un orden interno en la base de datos.

Usando * se considera una mala práctica:no sabe lo que está obteniendo, y si solo necesita algunas de las columnas, use * recupera más datos de los necesarios, lo que hace que las cosas sean más lentas.

Por cierto, nombrar columnas como esta (por número) es una práctica de programación muy pobre. ¿Cómo diablos mantienes las cosas en orden? Tus columnas tienen números, tus tablas tienen números. ¿Estás tratando de escribir código ofuscado? ¿Para asegurarse de que nadie más pueda trabajar en su código? Porque si es así, esta es una forma de hacerlo.