我需要从两个不同且不相关的表中获取两列,有两种方法:
发送2个单独的查询:
SELECT * FROM table_a WHERE id = ""; SELECT * FROM table_b WHERE id = "";
发送1个查询: SELECT a.*, b.* FROM table_a AS a, table_b AS b WHERE a.id = "" AND b.id = "";
我想知道是有相同的还是有一个比另一个更好?
如果没有更好的,你喜欢哪一个?为什么?
更新时间:
我故意问 ID
因此每个表只有一个结果
1条答案
按热度按时间tkqqtvp11#
您提到的两种方法都可能返回不同的结果集,这取决于表中存在的数据。
但是如果您确定每个查询只返回一行,那么
两个单独的查询比join好
你也可以用下面这样的方法
从性能的Angular 来看,联接总是代价高昂的
现在考虑您的查询(它如何返回不同数量的记录)
假设表a中有2行,其中id=“”和表b中有3行,其中id=“”
在这个连接查询中,db将返回结果集中的6行(2x3=6)。在这种情况下,上面提到的#1 db只返回5行(2+3)
此外,结果集中的列数也会有所不同,如果表a中有2列,表b中有2列,则方法1将仅包含结果集中的2列,而方法2中结果集中有4列(每个表有2列)