2012-02-11 5 views
-1

J'apprends actuellement MySQL et je veux écrire une application de dictionnaire simple. Actuellement, j'ai 3 tables: Langue1: ID | MotMySQL: requête JOIN sur 3 tables

Langue2: ID | Mot

Dict: ID_Lang1 | Maintenant, j'ai du mal à faire une requête qui regarde dans les deux tables de langue pour le mot et via la table dict trouve le mot correspondant dans l'autre langue.

Ce que je voulais était comme: sélectionnez lang1.ID, lang2.ID de Language1, LANGUAGE2 OÙ lang1.word OU lang2.word = « Aléatoire » et de rejoindre ce en quelque sorte en même temps que la table Dict, mais je ne pouvais ne pas le faire fonctionner. J'espère que quelqu'un m'éclairera!

Répondre

0

Peut-être que quelque chose comme ça?

SELECT * 
FROM `dict` d 
    LEFT JOIN `language1` l1 ON d.`id_lang1` = l1.`id` 
    LEFT JOIN `language2` l2 ON d.`id_lang2` = l2.`id` 
WHERE 
    l1.`word` LIKE 'random' 
    OR l2.`word` LIKE 'random' 
+0

Salut! Fonctionne bien aussi, mais il demande trop de variables pour mon cas. Mais merci quand même! Très appréciée! – user1204121

0

Performance de recherche va se frapper comme Dict devient plus grande, mais cela est juste une façon de le faire:

SELECT L1.ID, L2.ID 
FROM Language1 AS L1 
    INNER JOIN Dict AS D ON D.ID_Lang1 = L1.ID 
    INNER JOIN Language2 AS L2 ON D.ID_Lang2 = L2.ID 
WHERE L1.Word = 'Random' 
     OR L2.Word = 'Random' 
+0

Salut En changeant L1.ID et L2.ID à L1.word et L2.word cela fonctionne parfait pour moi! Merci beaucoup! – user1204121

+0

Heureux que ça a marché. –