Je me demande si quelqu'un pourrait m'aider ici.Mysql Cartésien Produit: Chaque relation une seule fois
Voici ce que je dois faire: Extraction des identifiants de la table de langues dans une nouvelle table avec des relations uniques entre eux. Comme la formule n (n-1) pour les nœuds.
J'ai essayé avec un produit cartésien, mais cela ne fonctionne pas, car la colonne a = 1 et la colonne b = 2 est la même que lorsque la colonne a = 2 et la colonne b = 1. Je ne suis pas sûr peut le faire avec une instruction SQL, je voulais éviter de faire une solution de contournement avec un script PHP. Donc, le SQL ci-dessous est seulement la moitié du chemin.
DROP TABLE IF EXISTS lang_score;
CREATE TABLE lang_score
SELECT a.text_lang_id AS lang_1, b.text_lang_id AS lang_2
FROM text_lang AS a, text_lang AS b
WHERE a.text_lang_id != b.text_lang_id
Je ne peux pas mettre une clé UNIQUE sur ces colonnes car chaque numéro apparaîtra plus d'une fois dans les deux. J'ai aussi essayé avec quelques SELECTS sur cette table, mais je n'ai pas trouvé comment éviter ces doublons de relations.
Merci à l'avance pour toute velléité
EDIT
requête qui fonctionne:
DROP TABLE IF EXISTS lang_score;
CREATE TABLE lang_score
SELECT a.text_lang_id AS lang_1, b.text_lang_id AS lang_2
FROM text_lang AS a, text_lang AS b
WHERE a.text_lang_id < b.text_lang_id
Utiliser '<' au lieu de ' ! = '. Cela reviendra (1, 2) mais pas (2, 1). –
Merci - c'est exactement ce que je cherchais - un si petit changement dans la requête avec un excellent résultat! Ty beaucoup! – Ameliore