gpt4 book ai didi

mysql - Mysql的自然连接

转载 作者:行者123 更新时间:2023-11-30 00:25:16 25 4
gpt4 key购买 nike

我对 mysql 中的自然连接有点困惑。

假设:有两个表
table1 有列:id、name、address、number(id 是 table1 的 PK)
table2 有列:id、name、number、money(id 是 table2 的 PK)

我已经将 table1"id" 设为外键,引用 table2"id" >

并假设table1中的“number”“people's number”并且“number” >table2“电话号码”这两列具有不同的含义但名称相同

<小时/>

当我对 table1table2 进行自然连接时:

mysql是否只是简单地检查table1table2的所有列,它们的名称相同,这意味着当且仅当会选择一个元组(行) if, "id", "name""number"必须全部相同(例如,"id""name" 相同,但 "number" 不同,该行不会被选中)?

或者

mysql是否只会检查创建的外键,这意味着当且仅当“id”相同时才会选择一行?

<小时/>

另一个问题是:

table1table2自然连接后,是否只有1列名为“id”或2列名为“table1.id""table2.id"??

真的谢谢!

最佳答案

您不应该为此使用自然连接,您可能需要使用左连接。table1 是父表吗?至少听起来应该是这样,外键引用应该从父表插入到子表中。父表中每个引用 id 有一个条目,而子表可能有多个、一个或没有引用 id 的条目

SELECT table1.id, table1.number AS person_number, table2.number AS phone_number
FROM table1
LEFT JOIN table2 ON table1.id = table2.id

关于mysql - Mysql的自然连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22938599/

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