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

[SOLUCIONADO] Consulta SQL Select compuest?!

Estas en el tema de Consulta SQL Select compuest?! en el foro de Mysql en Foros del Web. Buenas! necesito ayuda para hacer una consulta SQL Tengo dos tablas Checklist: en la cual quiero cargar tareas para una tabla de verificación tl_log: en ...
  #1 (permalink)  
Antiguo 24/01/2013, 11:50
 
Fecha de Ingreso: julio-2012
Ubicación: Asunción
Mensajes: 54
Antigüedad: 11 años, 10 meses
Puntos: 3
Pregunta Consulta SQL Select compuest?!

Buenas! necesito ayuda para hacer una consulta SQL

Tengo dos tablas

Checklist: en la cual quiero cargar tareas para una tabla de verificación
tl_log: en la cual guardo el log de las tareas ya chekeadas

Las tablas son estas:

Checklist:

id_check
nombre
fecha_inicio
fecha_final
estatico= (si es algo fijo, o una tarea que solo se ará por una semana, por ejemplo)

tl_log

id_log
id_tl = id de usuario conectado
id_checked = el id_check que ya se checkeo :O

bueh, los demas datos no vienen al caso.

Quiero hacer una consulta a mi server mysql con esta condicion.

"traeme todos los datos de la tabla Checklist donde el "id_check" sea distito a lo ya chekeado en la tabla "tl_log.id_checked";
y HOY este entre fecha_inico y fecha_final o en todo caso donde "estatico" sea igual a 1"

estuve probando con:

Código MySQL:
Ver original
  1. FROM `checklist`
  2. WHERE `fecha_inicio` <= '2013-01-24 14:27:10'
  3. AND `fecha_final` >= '2013-01-24 14:27:12'
  4. OR `estatico` =1
  5.  
  6. FROM `checklist`
  7. WHERE id_check != 1
  8. (`fecha_inicio` <= '2013-01-24 14:27:10'
  9. AND `fecha_final` >= '2013-01-24 14:27:12'
  10. OR `estatico` =1)


Pero no logro concatenar las tablas, no se que hacer ya que en el segundo caso funciona, pero veo que cuando tenga varios tl_log.id_checked con los que comparar con Checklist.id_check me voy a ir al maso

Agradecería algunas idea de como poder traer esta bendita tabla


Saludos!
__________________
--
What is real? How do you define real?
If real is what you can feel, smell, taste and see, then real is simply electrical signals interpreted by your brain.
  #2 (permalink)  
Antiguo 24/01/2013, 12:19
 
Fecha de Ingreso: julio-2012
Ubicación: Asunción
Mensajes: 54
Antigüedad: 11 años, 10 meses
Puntos: 3
Respuesta: Consulta SQL Select compuest?!

Código MySQL:
Ver original
  1. FROM checklist
  2. LEFT JOIN tl_log ON checklist.id_check = tl_log.id_checked
  3. AND tl_log.id_tl = '1'
  4. WHERE tl_log.id_checked IS NULL
  5. LIMIT 0 , 30

el 1 es solo un ejemplo, sería el usuario logeado.
tema solucionado
__________________
--
What is real? How do you define real?
If real is what you can feel, smell, taste and see, then real is simply electrical signals interpreted by your brain.
  #3 (permalink)  
Antiguo 24/01/2013, 12:34
 
Fecha de Ingreso: julio-2012
Ubicación: Asunción
Mensajes: 54
Antigüedad: 11 años, 10 meses
Puntos: 3
Respuesta: Consulta SQL Select compuest?!

no esta resuelto :(
__________________
--
What is real? How do you define real?
If real is what you can feel, smell, taste and see, then real is simply electrical signals interpreted by your brain.
  #4 (permalink)  
Antiguo 24/01/2013, 13:53
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 4 meses
Puntos: 447
Respuesta: Consulta SQL Select compuest?!

Hola skyspablo

Por qué no nos pones algunos datos de ejemplo de tus tablas y nos dices exactamente qué es lo que esperas como salida... Creo que sería más fácil de entender y habría mas posibilidades de que demos una posible solución.

saludos
Leo.
  #5 (permalink)  
Antiguo 25/01/2013, 10:07
 
Fecha de Ingreso: julio-2012
Ubicación: Asunción
Mensajes: 54
Antigüedad: 11 años, 10 meses
Puntos: 3
Respuesta: Consulta SQL Select compuest?!

Ya solucioné en realidad no se puede hacer lo que quería desde una sola consulta con mysql, despues de realizar la consulta realice una condición con php para filtrar.

Lo que quería era desplegar la lista de tareas que aun no fueron marcadas cono realizadas.

Gracias de todos modos
__________________
--
What is real? How do you define real?
If real is what you can feel, smell, taste and see, then real is simply electrical signals interpreted by your brain.
  #6 (permalink)  
Antiguo 25/01/2013, 10:32
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 SQL Select compuest?!

Cita:
Ya solucioné en realidad no se puede hacer lo que quería desde una sola consulta con mysql, despues de realizar la consulta realice una condición con php para filtrar.
En realidad, si sobre la base de una consulta dada, puedes obtener en PHP la lista de valores que permiten lograr otra serie de consultas que te den el dato, entonces si se puede hacer una única consulta en MySQL que te de el mismo resultado.
Si no fuese así, con PHP no podrías obtener el filtrado necesario...

Lo que tienes es:
Cita:
Checklist(id_check, nombre, fecha_inicio, fecha_final, estatico)
Tl_log(id_log, id_t, id_checked)
Lo que quieres es:
Cita:
Obtener todos los datos de la tabla Checklist donde el id_check sea distito a lo ya chekeado en la tabla tl_log (campo id_checked) y HOY este entre fecha_inico y fecha_final, o en todo caso donde estatico = 1.
Lo que podría ser sería:
Código MySQL:
Ver original
  1. SELECT id_check, nombre, fecha_inicio, fecha_final, estatico
  2. FROM checklist
  3.     (id_check NOT IN(SELECT id_checked FROM tl_log)
  4.     AND CURDATE() BETWEEN fecha_inicio AND fecha_fin)
  5.     OR
  6.     estatico = 1;

Al menos eso sería de acuerdo a lo que planteas que necesitas...
__________________
¿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: mysql+php
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 18:02.