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

convertir subselect

Estas en el tema de convertir subselect en el foro de Mysql en Foros del Web. tengo 3 tablas TICKET2,TICKET_VENTA, Y COBRADOR_TICKET donde guardo las caracteristicas de mi ticket, en la primera, luego en ticket_venta almaceno la forma de pago de ...
  #1 (permalink)  
Antiguo 29/10/2010, 12:05
Avatar de cheo  
Fecha de Ingreso: febrero-2007
Mensajes: 9
Antigüedad: 17 años, 2 meses
Puntos: 1
convertir subselect

tengo 3 tablas TICKET2,TICKET_VENTA, Y COBRADOR_TICKET donde guardo las caracteristicas de mi ticket, en la primera, luego en ticket_venta almaceno la forma de pago de ese tiket y en la 3era un cobrador asignado para ese ticket, ahora bien monte mi sentencia sql para consultar los boletos q no tengan cobrador asignado de la siguiente manera:
select M.clave_ticket,M.nro1,M.nro2,M.signo,M.color,M.zon a as nombre from ticket2 M, ticket_venta EST where M.clave_ticket= EST.clave_ticket and M.zona='$zona' and EST.forma_pago='2' and EST.clave_ticket NOT IN (select clave_ticket from cobrador_ticket y en mi localhost funciona perfectamente ahora cuando lo monto al servidos el subquery no lo reconoce pq no me arroja registros, teniendo como, es deicr el resultado es vacio, de que manera esta sentencia sql la puedo scribir usando inner join???, de antemano agradecido por la atencion prestada.
  #2 (permalink)  
Antiguo 29/10/2010, 14:38
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 3 meses
Puntos: 447
Respuesta: convertir subselect

Hola Cheo, si tu consulta funciona de manera local y no en el servidor no creo que tenga nada que ver con el hecho de utilizar o no INNER JOIN, más bien tendrías que revisar que la información contenida en tu servidor y en tu BD local sea la misma, para verificar que los resultados son iguales.

De cualquier manera, si quieres probar la consulta con INNER JOIN quedaría más o menos así:

Código MySQL:
Ver original
  1. M.clave_ticket,
  2. M.nro1,M.nro2,
  3. M.signo,M.color,
  4. M.zon a as nombre
  5. from ticket2 M
  6. INNER JOIN ticket_venta EST
  7. ON M.clave_ticket= EST.clave_ticket
  8. M.zona='$zona' and
  9. EST.forma_pago='2' and
  10. EST.clave_ticket NOT IN (select clave_ticket from cobrador_ticket)

En tu consulta falta un paréntesis al final del NOT IN, pero imagino que fue un error al escribir el post.

También puedes reemplazar la sentencia NOT IN por una sentencia EXISTS para mejorar el rendimiento.

Saludos.
Leo.
  #3 (permalink)  
Antiguo 01/11/2010, 06:32
Avatar de cheo  
Fecha de Ingreso: febrero-2007
Mensajes: 9
Antigüedad: 17 años, 2 meses
Puntos: 1
Respuesta: convertir subselect

hola leo, de antemano agradecido por anteder al post, te cuento que he colocado todos los datos en el servidor y en mi host, y por lo que he revisado en internet los subselect no son muy sobustos en mysql, muchos se van a cambiar la consulta con sus inner join para consulta entre tablas, ya e cambiado el EXIST dentro de la consulta y nada, por lo que puedo creeer q es el tipo de servidor mysql q maneja el servidor q no me arroja los resultados deseados. de igual manera te cuento q el parentesis lo obvie debido a que va entre comillas la sentencia y anterior a ello el $consulta donde posteriormente hago ej mysql_query($consulta);. Nuevamente agradecido por la atencion. y saludos.

Etiquetas: Ninguno
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 10:38.