Bases de Datos > MySQL
Tablas y Columnas
(1/1)
angelman7:
Cordial Saludo
tengo la una duda sobre mysql, hace tiempo no practico sql, y no me acuerdo de algunas cosas para que me colaboren, miren la situacion es esta
como hago para llamar una misma columna de dos tablas
la columna se llama A
y esta en las tablas
docentes
y estudiantes
SELECT `A` FROM `estudiantes` INNER JOIN `docente` ON estudiantes.A = docente.A LIMIT 0 , 30
pero me sale este error
#1052 - Column 'A' in field list is ambiguous
intente asi
SELECT * FROM `estudiantes` INNER JOIN `docente` ON estudiantes.A = docente.A LIMIT 0 , 30
fijense que cuando la pongo asi
me funciona
SELECT `A` FROM `estudiantes` INNER JOIN `docente` ON estudiantes.A = docente.A LIMIT 0 , 30
pero asi no
ProfesorX:
El error mismo te lo esta indicando
Column 'A' in field list is ambiguous
Traducido:
La columan A en la lista de campos es ambigua.
Esto se debe precisamente a que la columna A se llama igual en las dos tablas, entonces no sabe si desplegar columna A de docentes o columna A de estudiantes.
La solucion es especificar, cuando las dos columnas tienen el mismo nombre en tablas diferentes, a que tabla te refieres, retomando tu ejemplo seria algo como:
--- Código: SQL ---SELECT `estudiantes.A` FROM `estudiantes` INNER JOIN `docente` ON estudiantes.A = docente.A LIMIT 0 , 30
Puede ser al contrario, usando docente.A en lugar de estudiantes.A, en este caso en particular no importa de que tabla tomas la columna.
Saludos :)
angelman7:
Muchas Gracias por la ayuda, ahora tengo otra pregunta:
me funciona el codigo, pero el resultado es raro es decir cuando hago una consulta normal asi:
SELECT A FROM `docente` ó `estudiantes
saldra esta tabla que son similares, con todos los datos pero si uso el comando que me dieron
A
99
63
12
137
20
2
124
134
109
127
1
3
39
123
16
17
66
115
128
91
121
8
13
73
131
15
22
14
125
21
1. SELECT `estudiantes.A` FROM `estudiantes` INNER JOIN `docente` ON estudiantes.A = docente.A LIMIT 0 , 30
sale este resultado
A A
39 39
10 10
14 14
16 16
3 3
2 2
13 13
63 63
no se si sea el editor (phpmyadmin) o estoy cometiendo algun error en el llamado, igual muchas gracias por el dato anterior me sirvio de mucho
ProfesorX:
Bueno mira, respecto a tu pregunta, no se que resultado esperas obtener, ya que solo tu sabes que datos contienen tus tablas, yo no se que dato contiene la columna A, solo te dire que cuando utilizas:
--- Código: SQL ---SELECT A FROM `estudiantes`;
estas mostrando la columna A de todas las filas de la tabla destudiantes.
y cuando uilizas:
--- Código: SQL ---SELECT `estudiantes.A` FROM `estudiantes` INNER JOIN `docente` ON estudiantes.A = docente.A
estas mostrando la columna A de la tabla estudiantes, pero solo aquellas filas que cumplen la condicion de ser iguales en la columna A en las dos tablas (estudiantes y docente). Si el valor de la columna A en la tabla estudiantes no es igual con algun valor de la columna A de la tabla docente, y viceversa, esa fila no se mostrara.
Espero que dicho eso te quede mas claro como funciona el Inner join
Saludos :)
angelman7:
muchas gracias, esos datos me ayudaron bastante, muchas gracias
Navegación
Ir a la versión completa