什么会更有效:三个选择查询,或带有连接的单个查询?

时间:2012-10-10 06:17:19

标签: sql

我有三张桌子:

A_details    
B_details    
C_details

什么会更有效:三个选择查询,或一个带连接的查询?

3 个答案:

答案 0 :(得分:1)

这将在很大程度上取决于架构,如果表上有正确的索引。

我通常更喜欢让数据库加入,而不是尝试在代码中进行,数据库在这方面做得更好。

这里的关键是如果你有有效读取连接的正确索引。

查看Database index

答案 1 :(得分:0)

这取决于您的数据库,但是当它们没有意义时不要创建JOIN。您尚未指定任何数据库或平台。如果您的平台允许每个查询多个结果集,则只需一次发出三个SELECT,并在一个数据库请求中获取三个表。

如果您的平台不支持它,请访问数据库三次,不要尝试联合查询,除非您确定这是性能问题

答案 2 :(得分:0)

连接表更有效,因为规范化是一种更好的方法。

这里我使用左外连接表连接在表之间的公共列上的三个表。因此,请将col1,col2,col3 ...替换为适合您的表的列,并参考以下查询:

select a.*, b.*, c.*
from A_details a 
left outer join B_details b on a.col1=b.col2
left outer join C_details c on a.col1=b.col3

有关详细信息,请参阅:     http://www.w3schools.com/sql/sql_join.asp