Bonjour,

Ma requète suivante ne fonctionne pas (elle génère beaucoup trop d'enregistrements : 261 ...), alors que si je scinde la clause WHERE en 2, les 2 requêtes fonctionnent correctement.
Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
SELECT * FROM r_evenements , r_evecat
WHERE
(UNIX_TIMESTAMP(DATE_LEDU) BETWEEN 1180303200 AND 1182981600)
OR
(UNIX_TIMESTAMP(DATE_AU) BETWEEN 1180303200 AND 1182981600)
AND
(
(r_evenements.ID = r_evecat.IDEVENEMENT)
AND
(( r_evecat.IDCATEGORIE = 4 ) OR ( r_evecat.IDCATEGORIE = 5 ))
)
ORDER BY DATE_LEDU

Fonctionne correctement : (5 records)
Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
SELECT * FROM r_evenements 
WHERE
(UNIX_TIMESTAMP(DATE_LEDU) BETWEEN 1180303200 AND 1182981600)
OR
(UNIX_TIMESTAMP(DATE_AU) BETWEEN 1180303200 AND 1182981600)
ORDER BY DATE_LEDU

et (19 records)
Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
SELECT * FROM r_evenements , r_evecat
WHERE
 
(r_evenements.ID = r_evecat.IDEVENEMENT)
AND
(( r_evecat.IDCATEGORIE = 4 ) OR ( r_evecat.IDCATEGORIE = 5 ))
 
ORDER BY DATE_LEDU

Où est mon erreur ? Comment assembler dans une query ces deux requêtes ?

Merci !