MySQL:3个表上的JOIN查询

时间:2012-02-11 18:26:12

标签: mysql database-design

我目前正在学习MySQL,并希望编写一个简单的字典应用程序。 目前我有3个表: LANGUAGE1: ID |字

LANGUAGE2: ID |字

字典: ID_Lang1 | ID_Lang2

现在我正在努力创建一个查询,在两个语言表中查找单词,并通过dict表找到另一种语言中的相应单词。

我的尝试是: 选择语言1中的lang1.ID,lang2.ID,语言2 WHERE lang1.word或lang2.word ='Random' 并以某种方式与Dict表一起加入,但无法使其工作。 希望有人能开导我!

2 个答案:

答案 0 :(得分:0)

也许是这样的?

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'

答案 1 :(得分:0)

当Dict变大时,查询的性能会受到影响,但这只是一种方法:

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'