Requette SQL ou Algorythme ?

Résolu
baratribord Messages postés 44 Date d'inscription vendredi 14 mars 2008 Statut Membre Dernière intervention 30 mai 2008 - 19 mai 2008 à 13:04
baratribord Messages postés 44 Date d'inscription vendredi 14 mars 2008 Statut Membre Dernière intervention 30 mai 2008 - 19 mai 2008 à 16:58
Bonjour,

Mis à part le béaba en terme de requetage je suis un pur novice.
Je voudrais mettre en relation différents champs d'une même table sur des enregistrement différents exemple :
Enr1. champ1 "toto", champ2 "tutu", champ3 = "titi", champ4 = "tata"Enr2. champ1 "titi", champ2 "tata", champ3 = "toto", champ4 = "tutu" Enr3. champ1 "tata", champ2 " titi ", champ3 = "tutu", champ4 = "toto"Enr4. champ1 "tata", champ2 "titi", champ3 = "toto", champ4 = "tutu"

Je voudrai dans un premier temps ne concerver que les enregistrements dont le champ2 est égal au champ3 puis le champ3 égal au champs2 mais pas sur un même enregistrement.

Dans mon cas la requete doit me retourner les enregistrements 1 et 3.

Est-ce possible avec le requetage SQL ou dois-je écrire un algo. ?

Merci pour vos pistes et indices car j'ai bien du mal à trouver mon bonheur...

Bara.

6 réponses

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
19 mai 2008 à 15:17
ce serait plutot :

SELECT * FROM 'Table' WHERE 'Champ1' IN (SELECT DISTINCT `Champ3` FROM 'Table')
3
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
19 mai 2008 à 14:16
tentes ce genre de choses :

-----------

SELECT T1.*, T2.* FROM `Table` T1, `Table` T2 WHERE T1.`Champ1`=T2.`Champ3`

---------

SELECT * FROM `Table` WHERE `Champ1`='tutu'
UNION
SELECT * FROM `Table` WHERE `Champ3`='tutu'
0
baratribord Messages postés 44 Date d'inscription vendredi 14 mars 2008 Statut Membre Dernière intervention 30 mai 2008
19 mai 2008 à 15:14
Merci pour le mot clé, je précise que je ne connais pas à l'avance les valeurs de mes champ1 et 3.
Je vais essayer quelque chose du genre qui fonctionne pas mais je vais chercher :

SELECT * FROM 'Table' WHERE 'Champ1' = UNION SELECT * FROM 'Table' ''Champ2'

C'est pas terrible mon machin...
0
baratribord Messages postés 44 Date d'inscription vendredi 14 mars 2008 Statut Membre Dernière intervention 30 mai 2008
19 mai 2008 à 16:08
Ha oui ! Pas mal.
Merci. Ca me sort également les enregistrements pour lesquels les champs1 et 3 sont vides pour une même ligne, mais cela n'est pas génant puisque l'interêt c'est qu'il soient différents.

A partir des éléments que tu m'as fournis je devrai être en mesure de réaliser le test inverse.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
19 mai 2008 à 16:21
NOT IN
0
baratribord Messages postés 44 Date d'inscription vendredi 14 mars 2008 Statut Membre Dernière intervention 30 mai 2008
19 mai 2008 à 16:58
Heu non.
Je précise le sens de ma requete :

J'ai des utilisateurs qui indiquent une ville de départ et une ville d'arrivée.
Il faut que je selectionne les utilisateurs pour lesquelles la ville de départ corresponde à la ville d'arrivée et vice-versa :
ex :
user1 ville_dep paris ville_arr lyon
user2 ville_dep = lyon   ville_arr= marseilleuser3 ville_dep lyon   ville_arr paris
....

Les utilisateurs 1 et 3 vont faire partie de ma selection puisque la ville de départ de l'un correspond à la ville d'arrivée de l'autre et vice-versa.

Voili voilou
Merci
0
Rejoignez-nous