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

Problema con join

Estas en el tema de Problema con join en el foro de Mysql en Foros del Web. @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código SQL: Ver original SELECT campoid , SUM ( tipo ) AS tipoo FROM plantas LEFT JOIN usuarios . idu , usuarios . ...
  #1 (permalink)  
Antiguo 04/05/2010, 07:13
Avatar de angel1993  
Fecha de Ingreso: octubre-2009
Mensajes: 752
Antigüedad: 14 años, 6 meses
Puntos: 22
Problema con join

Código SQL:
Ver original
  1. SELECT campoid,SUM(tipo) AS tipoo FROM plantas
  2. LEFT JOIN usuarios.idu,usuarios.nombre ON plantas.campoid=usuarios.idu
  3.  GROUP BY campoid ORDER BY tipoo DESC LIMIT 20

me dice
errroYou have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'usuarios.nombre ON plantas.campoid=usuarios.idu group by campoid order by tipo' at line 2
  #2 (permalink)  
Antiguo 04/05/2010, 07:20
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, 4 meses
Puntos: 2658
Respuesta: Problema con join

Estás indicando el LEFT JOIN contra campos de una tabla, y debe ser contra la tabla:
Código MySQL:
Ver original
  1. SELECT campoid, SUM(tipo) AS tipoo
  2. FROM plantas P LEFT JOIN usuarios U ON P.campoid=U.idu
  3. GROUP BY campoid
  4. ORDER BY tipoo DESC
  5. LIMIT 20;

Si hay campos que en esa tabla son los que se relacionan, en todo caso deben especificarse en el ON, tal y como lo has hecho.
__________________
¿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 04/05/2010, 07:25
Avatar de angel1993  
Fecha de Ingreso: octubre-2009
Mensajes: 752
Antigüedad: 14 años, 6 meses
Puntos: 22
Respuesta: Problema con join

tio.. pero si pongo from plantas on leera todas las columnas de la tabla y tengo un monton.. no quiero que se me pete el servidor..
Quiero que solo me envie usuario.idu y usuario.nombre.. si no se me peta son muchas columnas..
  #4 (permalink)  
Antiguo 04/05/2010, 08:10
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, 4 meses
Puntos: 2658
Respuesta: Problema con join

No estás comprendiendo la sentencia SELECT...
El JOIN establece una junta entre dos tablas, realizándola:
1. Emparejando todos los campos del mismo nombre, si y sólo si se usa JOIN o coma (sinónimo de JOIN), sin ningún modificador y sin indicar qué campos se emparejarán.
2. Emparejando sólo los campos indicados en el ON, el que es obligatorio cuando se usan las cláusulas INNER, LEFT o RIGHT.
El primero de los casos genera o puede generar un producto cartesiano y por eso no es recomendable usar JOIN sin ON.
Pero el uso de JOIN no implica que se lean todas las columnas. La lectura de las columnas que se recuperarán se determina primero por las descriptas en el ON del FROM, luego por las definidas en el SELECT y el WHERE. Pero en cualquier caso, todo esto puede ser optimizado estableciendo índices en los campos de las tablas indicadas en el ON.
¿Se entiende ahora?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: join
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 23:48.