Commande SQL

stevengren Messages postés 176 Statut Membre -  
BadGuitarist Messages postés 373 Statut Membre -
Bonjour,
j'ai une base de données contenant des triangles et la mesure des trois cotés c'est-à-dire le CoteA, Coteb coteC . Je dois récupérer tous les triangle isométrique dans ma base c'est-à-dire que je dois récupérer les triangle qui par exemples A=2 B=3 C=4 et A=2 B=3 C=4 C'est 2 triangle sont isométriques car le triangle est identique mes ses cotés sont dans un ordre différent.

Les triangles suivant sont isométrique
A=2 b=3 c=4
a=3 b=2 c=4
a=4 b=2 c=3
a=2 b=4 c=2

Je n'arrive pas a faire de commande select pour récupéré seulement les triangles isométrique
Select * from Triangle where ??????

A voir également:

4 réponses

loupius Messages postés 789 Statut Membre 148
 
Une solution bestiale...
SELECT * FROM triangle WHERE
  (a=2 OR b=2 OR c=2) AND
  (a=3 OR b=3 OR c=3) AND
  (a=4 OR b=4 OR c=4);
En attendant une meilleure solution.
Bonne continuation.
0
al_right Messages postés 142 Statut Membre 9
 
Il le seraient si la somme de leur coté été égale?
ou y a t'il des possibilités a=1,5 b=3,5 c=4?
http://dev.mysql.com/doc/refman/5.0/fr/searching-on-two-keys.html
0
stevengren Messages postés 176 Statut Membre
 
Les coté sont simplement des int (je n'ai pas de float) et sa ne fonctionne pas seulement avec la somme des coté car par exemple
A=10 b = 4 c=2 la somme = 16
et le triangle
A=9 b= 5 c=2 la somme est aussi de 16 alors que les triangles ne sont pas isométrique
c'est la que je suis vraiment embêter
0
BadGuitarist Messages postés 373 Statut Membre 27
 
Bonsoir stevengren,

En faisant appel à du SQL standard, pour faire le recherche que tu demandes, il te faut parcourir plusieurs fois ta table Triangle.

Remarque : présentement, je te donne l'idée générale de mon idée;
demain, si le sujet est toujours ouvert, je tenterai de t'apporter une solution.

SELECT T1.a, T1.b, T1.c
FROM triangle T1, -- sert pour étudier tous les triangles référencés
triangle T2 -- sert de table de comparaison
WHERE ( T1.a = T2.a -- Cas 1 : les triangles ont le même a
AND T1.b = T2.c
AND T1.c = T2.b )
OR ( T1.b = T2.b -- Cas 2 : les triangles ont le même b
AND T1.a = T2.c
AND T1.c = T2.b )
OR ( T1.c = T2.c -- Cas 3 : les triangles ont le même c
AND T1.a = T2.b
AND T1.b = T2.a )
OR ( toutes les autres combinatoires possibles )

Remarque : T1 et T2 sont bien 2 références sur la même table triangle.

A cette heure-ci, sans avoir fait de tests, cela me semble pas trop stupide ;-)

Bon courage.

Cordialement,
BG.
0