gpt4 book ai didi

mysql - 如果其中一个连接表具有另一个连接表的外键,如何执行两个连接表的连接?

转载 作者:行者123 更新时间:2023-11-29 10:04:35 27 4
gpt4 key购买 nike

我是数据库设计的新手,所以我还在学习,很抱歉可能使用了不恰当的术语,所以我会尝试用通用语言解释我遇到的问题。我学习了如何通过中间的联结表连接两个表(获取结果),但是当我想通过另一个联结表连接一个“常规”表和一个联结表时,我遇到了问题。

我有一个关系数据库,其中有表和它们之间的关系,如下所示:

Relational database design

我知道如何使用 hgs_translations 加入 hgs_transliterationshgs_gardinershgs_meaningshgs_word_types code>,但我不知道该怎么做是如何连接这 4 个表和 hgs_references 表。

这是我用于连接下面 4 个表的代码:

SELECT hgs_transliterations.transliteration, hgs_gardiners.gardiners_code, hgs_meanings.meaning, hgs_word_types.word_type
FROM hgs_translations
JOIN hgs_transliterations ON hgs_translations.transliteration_id = hgs_transliterations.id
JOIN hgs_gardiners ON hgs_translations.gardiners_id = hgs_gardiners.id
JOIN hgs_meanings ON hgs_translations.meaning_id = hgs_meanings.id
JOIN hgs_word_types ON hgs_translations.word_type_id = hgs_word_types.id

我读了一些关于这个主题的教程,其中提到了 ASINNER JOINOUTER JOIN,但我不太理解术语和我如何使用它来创建我需要的东西。抱歉,可能是一些基本问题,但正如我所说,我只是一个初学者,我试图深入理解一些东西,以便我可以适本地使用它。预先感谢您。

附注如果有人认为这不是好的数据库设计(表之间关系的设计),我很想听听。

最佳答案

只需添加两个连接:

SELECT hgs_transliterations.transliteration, hgs_gardiners.gardiners_code, 
hgs_meanings.meaning, hgs_word_types.word_type,
hgs_references.reference
FROM hgs_translations
JOIN hgs_transliterations ON hgs_translations.transliteration_id = hgs_transliterations.id
JOIN hgs_gardiners ON hgs_translations.gardiners_id = hgs_gardiners.id
JOIN hgs_meanings ON hgs_translations.meaning_id = hgs_meanings.id
JOIN hgs_word_types ON hgs_translations.word_type_id = hgs_word_types.id
JOIN junc_translation_reference ON junc_translation_reference.translation_id = hgs_translations.id
JOIN hgs_references ON hgs_references.id = junc_translation_reference.reference_id

关于mysql - 如果其中一个连接表具有另一个连接表的外键,如何执行两个连接表的连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52159145/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com