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

Como es en Mysql

Estas en el tema de Como es en Mysql en el foro de Mysql en Foros del Web. Hola socios, tengo esta consulta, quiero que me muestre siempre todos los valores de mi tabla postes que son 152 datos no varian, lo que ...
  #1 (permalink)  
Antiguo 10/01/2008, 10:19
Avatar de biciextrema  
Fecha de Ingreso: noviembre-2007
Mensajes: 27
Antigüedad: 16 años, 4 meses
Puntos: 0
Como es en Mysql

Hola socios, tengo esta consulta, quiero que me muestre siempre todos los valores de mi tabla postes que son 152 datos no varian, lo que si varia es lo que yo ingreso en la tabla revision, por ende tenga o no datos quiero mostrarlo. Estoy haciendolo así : Mi drama es que en SQL si funciona el *=, pero cual es que reemplaza esta sentencia en Mysql, agradecería su ayuda.

SELECT fecha, postes.nposte, revision.pk, revision.observacion, postes.estado , revision.estado
FROM postes, revision
WHERE postes.nposte*=revision.nposte


Gracias !
  #2 (permalink)  
Antiguo 10/01/2008, 10:32
Avatar de pragone  
Fecha de Ingreso: diciembre-2007
Ubicación: Madrid
Mensajes: 223
Antigüedad: 16 años, 4 meses
Puntos: 2
Re: Como es en Mysql

Si no recuerdo mal... esa era la syntaxis que utilicé alguna vez en ORACLE para hacer un left join.

Creo que eso es lo mismo que:

SELECT fecha, postes.nposte, revision.pk, revision.observacion, postes.estado , revision.estado
FROM postes LEFT JOIN revision ON (postes.nposte=revision.nposte);
  #3 (permalink)  
Antiguo 10/01/2008, 13:04
Avatar de biciextrema  
Fecha de Ingreso: noviembre-2007
Mensajes: 27
Antigüedad: 16 años, 4 meses
Puntos: 0
Re: Como es en Mysql

Okey me funciono me muestra todos los registros, ahora sin querer aprovecharme, quiero que me muestre los registros, pero sin que se repita un nposte, sino que me muestre todos y que solamente me muestre la última fecha. Pero conservando en la consulta los 152 postes ordenados del 1 al 152.

SELECT fecha , postes.nposte , revision.pk , revision.observacion , postes.estado , revision.estado FROM postes LEFT JOIN revision ON (postes.nposte =revision.nposte )between 1 and 152
  #4 (permalink)  
Antiguo 10/01/2008, 13:28
Avatar de pragone  
Fecha de Ingreso: diciembre-2007
Ubicación: Madrid
Mensajes: 223
Antigüedad: 16 años, 4 meses
Puntos: 2
Re: Como es en Mysql

Ok.

Eso es un poco más complicado en una sola query. Supongo que sería con Subqueries... pero no tengo mucha experiencia con ellas... igual alguien puede exponer cómo sería.
  #5 (permalink)  
Antiguo 11/01/2008, 04:16
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
Re: Como es en Mysql

Prueba de esta forma (un poquito compleja, pero debería funcionar):
Cita:
SELECT MAX(fecha) as FECHA , postes.nposte FROM postes INNER JOIN revision USING (nposte) BETWEEN 1 AND 152 GROUP BY (FECHA, NPOSTE);
  #6 (permalink)  
Antiguo 11/01/2008, 06:54
Avatar de biciextrema  
Fecha de Ingreso: noviembre-2007
Mensajes: 27
Antigüedad: 16 años, 4 meses
Puntos: 0
Re: Como es en Mysql

Me arroja esto :
Error

consulta SQL: Documentación

SELECT MAX( fecha ) AS FECHA, postes.nposte
FROM postes
INNER JOIN revision
USING ( nposte )
BETWEEN 1
AND 152
GROUP BY (
fecha, nposte
)
LIMIT 0 , 30

MySQL ha dicho: Documentación
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'BETWEEN 1 AND 152 GROUP BY ( fecha , nposte )
LIMIT 0, 30' at line 1
  #7 (permalink)  
Antiguo 11/01/2008, 07:37
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
Re: Como es en Mysql

Cita:
SELECT MAX(fecha) as FECHA , postes.nposte FROM postes INNER JOIN revision USING (nposte) WHERE NPOSTE BETWEEN 1 AND 152 GROUP BY (FECHA, NPOSTE);
  #8 (permalink)  
Antiguo 11/01/2008, 15:33
Avatar de pragone  
Fecha de Ingreso: diciembre-2007
Ubicación: Madrid
Mensajes: 223
Antigüedad: 16 años, 4 meses
Puntos: 2
Re: Como es en Mysql

Por cierto... si en la tabla postes sólo hay los registros de número de postes 1 al 152 y esta información nunca cambia (según lo que indicas al principio), entonces no necesitas el Between, todos los registros están en ese rango.
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 16:54.