我有一些表格的第三种正常表格,我需要做一些跨表查询来获取我需要的信息。
我查看了连接,但似乎它会创建一个新表。这是执行此类查询的正确方法吗?或者我应该只做嵌套查询?我想如果我不得不做这些查询可能有意义吗?我真的不确定如何优化这些操作。我正在使用sequelize ORM,我不确定我是否看到任何明确的解决方案。
答案 0 :(得分:0)
在我看来,你在询问联接与子查询。这些在某种程度上是不同的。但是,让我们从几点开始。
如上所述,一般情况下我认为联合是可取的。主要原因是可以使用下面的结构编写的SQL查询比大多数替代方法更容易理解和调试(当你掌握语言时),并且列列表中的子查询也必然表现不佳:
SELECT [column_list]
FROM [initial_table]
[join list]
WHERE [filters]
GROUP BY [grouping list]
HAVING [post-aggregation filters]
LIMIT [limit and offset]
如果您的查询符合上述结构,那么您通常可以预期查询的特定部分中的逻辑中会出现特定类型的问题。另一方面,对于子查询,您必须单独检查这些。