对于一对一的关系,我应该加入多少个字段?

时间:2016-09-06 14:19:26

标签: sql field inner-join

我只是好奇编写内连接时的约定。我想加入两个具有多个匹配数据实例的表。例如,“雇用日期'”,“员工编号”和“工资”等​​。在两个表中都可以找到。我应该加入所有这些领域吗?

SELECT 
     a 
FROM 
     table.example a
          inner join table.example b ON a.date = b.date and a.id = b.id_num and a.salary = b.salary

2 个答案:

答案 0 :(得分:1)

为了提高性能,通常你应该加入尽可能少的字段,最好是索引字段

答案 1 :(得分:0)

像这样加入并不是一个好主意。因为你只是创造了更多的冗余。

1.您需要减少冗余。这意味着如果您将日期和工资存储在表“B”中,则无需再将它们存储在表“A”中。

2.您需要一个唯一值来将第二个表与第一个表相关联。例如,在表“A”中,您将“id”创建为唯一列,而在表“B”中创建指向表“A”id的“ta_id”。然后就这样加入他们:

SELECT table_a.*,table_b.salary,table_b.date
FROM table_a
LEFT JOIN table_b
ON table_a.id = table_b.ta_id