gpt4 book ai didi

SQL |加入使用vs加入

转载 作者:行者123 更新时间:2023-12-04 14:34:10 25 4
gpt4 key购买 nike

嗯,这可能只是一个“样式问题”,但是我真的很想了解更多关于JOIN t ON <equal condition>JOIN t USING(<list of columns>)之间的区别的知识。

当然,我假设两个表具有相同的列,相同的名称和相同的数据类型。在这种情况下:

  • 两种语法之间有什么真正的区别?
  • 是否在所有(至少是最重要的)dbms中都支持USING子句?

  • 我已经读过有关 w3resource.com上的 NATURAL JOIN和有关 NATURAL JOINON子句的以下 question的信息,但它们似乎没有回答前面的两个问题...
    此外,w3resource.com的 EQUI JOIN 部分和 INNER JOIN 部分均未提及 USING“技术”。

    最佳答案

    在大多数情况下,这只是样式问题(并非所有数据库都支持using的事实)。有一个小的区别。如果您这样做:

    select *
    from t1 join
    t2
    on t1.col1 = t2.col1

    然后 col1在结果集中出现两次。如果您这样做:
    select *
    from t1 join
    t2
    using (col1)

    然后 col1仅出现一次。

    我喜欢的 using的一个方面是,它鼓励外键与主键具有相同的名称。如果有可能(并非总是可能),我认为这是一个很好的设计,可以使数据库更易于使用。

    在某些情况下, using可能会执行意外的操作。在 join的长链中,它没有指定 key 的来源。但是,我认为在设计良好的数据库中这不是问题。

    另一方面, natural join是可憎的,永远不要使用。他们没有指定要连接的列。他们甚至不尊重外键关系。在要比较的列上不清楚,仅是代码中的错误的诱因-这些错误可能非常非常难以发现。

    关于SQL |加入使用vs加入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45531762/

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