gpt4 book ai didi

mysql - 如何将第三个表包含到联接中,但不必担心该表是否有可以联接的行?

转载 作者:行者123 更新时间:2023-11-29 07:44:09 26 4
gpt4 key购买 nike

我有一个规范化的数据库,其中的表可能包含或不包含与其他相关表相关的信息。例如

  • 单词表

    • ID
    • 值(value)
  • 定义表

    • ID
    • foreignk(至 word.id)
    • 值(value)
  • 原籍国

    • ID
    • foreignk(至定义.id)
    • 值(value)

例如,连接单词和定义表完全没有问题,但是如果单词条目可能有或没有countryoforigin,我如何/应该也连接countryoforigin? (这只是一个例子,但我还有其他几张处于相同情况的表)。

如果 word.id 在countryoforigin 表中有相应的条目,则此查询有效,但如果没有匹配的条目,则不返回任何内容。

select * from word, definition, countryoforigin where
word.id = definition.fk and
word.id = 11 and
countryoforigin.fk = definition.id;

是否可以更好地拆分查询,并使用对countryoforigin.foreignk 的选择(以definition.id 作为值)来对countryoforigin 表执行单独的选择操作?

最佳答案

也许像这样:

SELECT 
*
FROM
word
INNER JOIN
definition ON word.id = definition.fk
LEFT JOIN
countryoforigin ON countryoforigin.fk = definition.id
WHERE
word.id = 11

关于mysql - 如何将第三个表包含到联接中,但不必担心该表是否有可以联接的行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28290474/

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