Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Consulta acerca de LEFT JOIN

Estas en el tema de Consulta acerca de LEFT JOIN en el foro de Mysql en Foros del Web. Hola, estoy tratando de hacer un JOIN de tablas< de una tabla necesito casi todas las columnas y de la otra solo una, para eso ...
  #1 (permalink)  
Antiguo 07/12/2012, 08:42
 
Fecha de Ingreso: mayo-2011
Mensajes: 102
Antigüedad: 13 años
Puntos: 0
Pregunta Consulta acerca de LEFT JOIN

Hola, estoy tratando de hacer un JOIN de tablas< de una tabla necesito casi todas las columnas y de la otra solo una, para eso estaba usando.
Código MySQL:
Ver original
  1. SELECT Device.deviceID AS Patente,ComandoEnviado,Respuesta,ID,FechaHoraEnvio,FechaHoraRespuesta,NumTelEnvio,NumTelRecibido,Protocolo
  2. FROM Clientes.ComandosEnviados,Clientes.Device WHERE uniqueID LIKE CONCAT('lt_',ID)

El CONCAT lo uso porque el ID de una tabla es igual al uniqueID de la otra excepto que el ID no tiene el prefijo "lt_".
Por ejemplo cuando el ID=0000 el uniqueID=lt_0000

Y funciona bien, pero hay un problema, los clientes que no figura su uniqueID en la tabla Device no aparecen en el resultado de la query.

Entonces estaba pensando en hacer un LEFT JOIN pero no termino de entender como.

Para eso estaba pensando en usar
Código MySQL:
Ver original
  1. SELECT Device.deviceID AS Patente,ComandoEnviado,Respuesta,ID,FechaHoraEnvio,FechaHoraRespuesta,NumTelEnvio,NumTelRecibido,Protocolo
  2. FROM Clientes.ComandosEnviados,Clientes.Device
  3. LEFT JOIN Clientes.Device
  4. ON Clientes.Device.uniqueID=CONCAT('lt_',Clientes.ComandosEnviados.ID);

Pero me da Error Code 1066. Not unique table/alias 'Device'

¿Que estoy haciendo mal?
  #2 (permalink)  
Antiguo 07/12/2012, 09:01
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Consulta acerca de LEFT JOIN

Cita:
ero me da Error Code 1066. Not unique table/alias 'Device'
Un nombre de tabla o de alias está repetido.
Si es de tabla, no estás usando alias correctamente, y si es de alias, verifica que sean distintos.
En tu caso:
- Estás invocando dos veces la misma tabla "Devices" sin alias.
- Estás mezclando LEFT JOIN con un JOIN implícito, lo que puede dar errores.
- Estás haciendo JOINs sin definir la relación con el ON o con el WHERE (en el WHERE no es buena idea).
- Estás relacionando una tabla consigo misma vinculando el ID de la tabla con otro valor que no es ID, pero parcialmente, lo que sugiere que hay un serio error de diseño en la misma.
Para poder decirte cómo corregirlo, y que eso parezca tener sentido, sería bueno que nos muestres la estructura de las tablas y bnos expliques cómo es posible que un ID (que debería ser PK) se vincule con parte del valor de un atributo de la tabla.
Desde el punto de vista del diseño de bases de datos, eso es un error (si le hubiera propuesto eso a un profesor en un examen, repruebo seguro).
¿Podrías explicarme ese contexto?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 07/12/2012, 09:29
 
Fecha de Ingreso: mayo-2011
Mensajes: 102
Antigüedad: 13 años
Puntos: 0
Respuesta: Consulta acerca de LEFT JOIN

Olvídense ya lo solucione, saludos.

Última edición por E_Blue; 07/12/2012 a las 14:51

Etiquetas: acerca, join, left, select, tabla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:26.