-2

我有三张桌子:

A_details    
B_details    
C_details

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

4

3 回答 3

1

这在很大程度上取决于架构,以及表上是否有正确的索引。

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

这里的关键是您是否有正确的索引以使连接有效地读取。

看看数据库索引

于 2012-10-10T06:25:35.523 回答
0

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

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

于 2012-10-10T06:20:39.273 回答
0

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

在这里,我对在表之间的公共列上连接的三个表使用左外连接。因此,请将 column 替换为 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

于 2012-10-10T06:26:16.477 回答