access requete pb

access requete pb - SQL/NoSQL - Programmation

Marsh Posté le 05-01-2006 à 12:07:13    

Bonjour à tous,
 
J'ai un petit probleme avec access.
 
Voici une requete :
SELECT DISTINCT video.nom_video, image.nom_video, video.numero_CD, image.nom_image, image.nom_phoneme
FROM video INNER JOIN [image] ON video.nom_video = image.nom_video
WHERE (((video.nom_video)=[image]![nom_video]) AND ((image.nom_video)=[video].[nom_video]) AND ([nom_phoneme]='a')) OR (((image.nom_phoneme)='b'))
 
Et le dernier OR, j'aimerais mettre AND à la place, mais cela ne fonctionne pas du tout.
 
Je me rends bien compte que c'est une question idiote, mais quelqu'un aurait-il une réponse ?
 
Merci d'avance
 
Véro

Reply

Marsh Posté le 05-01-2006 à 12:07:13   

Reply

Marsh Posté le 05-01-2006 à 12:27:07    

forcément, si image.nom_phoneme = 'a', il ne peut pas être = 'b' en même temps.
 
à mon avis, c'est ça que tu veux faire :
 
... and (image.nom_phoneme = 'a' or image.nom_phoneme = 'b')
 
ou plus lisiblement :
 
... and image.nom_phoneme in ('a', 'b')
 
PS: et vire toutes ces () qui servent à rien, on comprends rien du tout à ta requête !


Message édité par Arjuna le 05-01-2006 à 12:27:49
Reply

Marsh Posté le 05-01-2006 à 12:47:09    

Non en fait ce que je veux c'est que dans la liste de tous les phonèmes il ne m'affiche que les 'a' qui sont suivis de 'b' par exemple.
 
Ici 'a' est suivi de 'v', donc il ne faudra pas me le donner
 
nom_image    num_image duree nom_phoneme  
Wioland_1_10  10 1 l Wioland_1
Wioland_1_11  11 1 l Wioland_1
Wioland_1_12  12 1 a Wioland_1
Wioland_1_13  13 1 a Wioland_1
Wioland_1_14  14 1 a Wioland_1
Wioland_1_15  15 1 a Wioland_1
Wioland_1_16  16 1 a Wioland_1
Wioland_1_17  17 1 a Wioland_1
Wioland_1_18  18 1 a Wioland_1
Wioland_1_19  19 1 v Wioland_1
Wioland_1_20  20 1 v Wioland_1
Wioland_1_21  21 1 v Wioland_1
Wioland_1_22  22 1 v Wioland_1
 
Merci de ta réponse
 
Véro

Reply

Marsh Posté le 05-01-2006 à 15:50:09    

hmmmm... c'est déjà plus chaud comme requête !
 

Code :
  1. SELECT DISTINCT video.nom_video, video.numero_CD, c.nom_image, c.nom_phoneme
  2. FROM video INNER JOIN image c ON video.nom_video = c.nom_video
  3. WHERE exists(select null from image a, image b where a.nom_video = c.nom_video and b.nom_video = c.nom_video and a.nom_phoneme = 'a' and b.nom_phoneme = 'b' and b.num_image = a.num_image + 1)


 
A priori, ça ressort toute la liste des vidéos et de toutes leurs images quand une image avec un phonème 'a' est immédiatement suivie par une image avec un phonème 'b'

Reply

Marsh Posté le 05-01-2006 à 15:57:59    

Merci pour ta réponse, mais cela ne fonctionne pas. Mais j'ai trouvé une autre solution en ajoutant un champ séquence qui donne toute la phrase (ex. lavilimit)
 
SELECT DISTINCT video.nom_video, image.nom_video, video.numero_CD, image.nom_image, image.nom_phoneme, video.sequence
FROM video INNER JOIN [image] ON video.nom_video = image.nom_video
WHERE image.nom_phoneme="l" Or image.nom_phoneme="a" AND video.sequence Like '*la*';
 
C'est peut-être pas très propre mais ça à l'air de marcher.
 
Merci pour tout
 
Véro

Reply

Marsh Posté le 05-01-2006 à 16:04:55    

:heink:
 
ha, tu cherches les truc qui contiennent "la" ?
 
ben forcément, c'est pas du tout ma requête, c'est d'un clair ton truc...
 
et vire moi les deux premières clauses de ton "where", elles ne servent à rien.

Reply

Marsh Posté le 05-01-2006 à 16:05:31    

surtout que le or fout la merde, ça ramène tous les phonème qui sont = 'l' ou qui contiennent "la"

Reply

Marsh Posté le 05-01-2006 à 16:14:14    

Non, si je vire ça il me donne tous les phonèmes de la phrase

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed