【问题标题】:MySQL: JOIN query on 3 tablesMySQL:对 3 个表进行 JOIN 查询
【发布时间】:2012-02-11 18:26:11
【问题描述】:

我目前正在学习 MySQL,想编写一个简单的字典应用程序。 目前我有3张桌子: 语言1: 身份证 |单词

语言2: 身份证 |单词

字典: ID_Lang1 | ID_Lang2

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

我正在尝试的是: 选择 lang1.ID, lang2.ID from Language1, Language2 WHERE lang1.word OR lang2.word = 'Random' 并以某种方式将其与 Dict 表连接在一起,但无法使其正常工作。 希望有人能不吝赐教!

【问题讨论】:

    标签: mysql database-design


    【解决方案1】:

    也许是这样的?

    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'
    

    【讨论】:

    • 嗨!也可以正常工作,但它为我的案例查询了太多变量。不过还是谢谢!非常感谢!
    【解决方案2】:

    随着 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'
    

    【讨论】:

    • 嗨,通过将 L1.ID 和 L2.ID 更改为 L1.word 和 L2.word 它对我来说非常完美!非常感谢!
    猜你喜欢
    • 1970-01-01
    • 2017-10-22
    • 2014-11-14
    • 1970-01-01
    • 2015-05-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多