Commande SQL

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 ??????

4 réponses

  1. 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.
    1. 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
      1. 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
        1. 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.