Ver Mensaje Individual
  #4 (permalink)  
Antiguo 06/02/2013, 14:47
leonardo_josue
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 4 meses
Puntos: 447
Respuesta: Uso del AND, OR y...

Hola de nuevo dark_17:

el problema creo que no está en el uso del AND y el OR, sino en el uso de la condición IN. En primer lugar deberías decirnos de qué tipo de dato es tu colmna a.idapart... si es de tipo cadena, entonces debes tener cuidado con el uso de las comillas...

Supongamos que tienes estos datos:

Código MySQL:
Ver original
  1. mysql> SELECT * FROM tabla;
  2. +------+---------+---------------------+-------+
  3. | ID   | Usuario | Fecha               | Datos |
  4. +------+---------+---------------------+-------+
  5. |    1 | uno     | 2013-02-06 12:23:00 |    10 |
  6. |    2 | dos     | 2013-02-05 01:51:00 |    20 |
  7. |    3 | uno     | 2013-02-02 07:24:00 |    30 |
  8. |    3 | uno     | 2013-02-02 07:24:00 |    40 |
  9. |    4 | tres    | 2013-02-01 01:17:00 |    40 |
  10. |    5 | cuatro  | 2013-02-06 04:36:00 |    60 |
  11. |    6 | uno     | 2013-02-03 10:14:00 |    70 |
  12. |    7 | dos     | 2013-01-30 11:55:00 |    80 |
  13. |    8 | cuatro  | 2012-12-31 06:56:00 |    90 |
  14. |    9 | tres    | 2013-02-01 08:44:00 |    80 |
  15. +------+---------+---------------------+-------+
  16. 10 rows in set (0.00 sec)

Si solo quieres obtener los registros para los usuarios uno y cuatro tendrías que hacer lo siguiente:

Código MySQL:
Ver original
  1. mysql> SELECT * FROM tabla where usuario in ('uno', 'cuatro');
  2. +------+---------+---------------------+-------+
  3. | ID   | Usuario | Fecha               | Datos |
  4. +------+---------+---------------------+-------+
  5. |    1 | uno     | 2013-02-06 12:23:00 |    10 |
  6. |    3 | uno     | 2013-02-02 07:24:00 |    30 |
  7. |    3 | uno     | 2013-02-02 07:24:00 |    40 |
  8. |    5 | cuatro  | 2013-02-06 04:36:00 |    60 |
  9. |    6 | uno     | 2013-02-03 10:14:00 |    70 |
  10. |    8 | cuatro  | 2012-12-31 06:56:00 |    90 |
  11. +------+---------+---------------------+-------+
  12. 6 rows in set (0.03 sec)

Un posible error que puede pasar con la manera en que lo estás haciendo es que tengas algo como esto:

Código MySQL:
Ver original
  1. mysql> SELECT * FROM tabla WHERE usuario IN ('uno,cuatro');
  2. Empty set (0.01 sec)

Observa, no es lo mismo ('uno','cuatro') a ('uno,cuatro'). Por la sintaxis creo que estás utilizando algo de PHP, te recomiendo que veas qué es exactamente lo que estás ejecutando, en lugar de utilizar las variables $compacto, $fecha_antes y $fecha

Saludos
Leo.