如果我自然地加入这两个表会怎么样?

时间:2012-12-15 19:19:10

标签: mysql sql database natural-join

我有两张桌子。员工和经理。员工表存储公司所有员工的信息。经理表显示哪些员工在哪个经理下工作。经理也是公司的员工。表格如下。

  

员工(名称,城市,街道)

     

经理(姓名,员工姓名)

粗体意味着它们是主键。现在的问题是,在管理器表中,名称和员工姓名都是引用员工的外键。那么如果我自然地加入它们会发生什么。不会有任何问题吗?在自然加入之后,我会在决赛桌上看到哪个城市和街道?经理或员工?

3 个答案:

答案 0 :(得分:1)

如果你运气好的话,你很可能没什么,如果你不走运,你很可能就是垃圾。 Natural join会做这样的事情:

SELECT * FROM managers LEFT JOIN employees
         WHERE managers.name = employees.name

Natural join尝试使用通用命名列

当我假设你想要更像这样的东西时:

SELECT * FROM managers LEFT JOIN employees
         WHERE managers.employee_name = employees.name

答案 1 :(得分:0)

您将获得所有经理city,street和employee_name的列表

姓名,城市,街道,员工姓名

答案 2 :(得分:0)

否则加入东西,我建议您查看数据库的架构。 如果在经理表中,名称是PK,那么您不能让多个员工拥有相同的经理。