我的查询与JOIN逻辑有关,其中涉及多个表或其他数据库对象。
查询1: 如果有一段代码包含涉及多个表的联接逻辑,那么我们应该在ON子句中首先比较哪些列? 例如,我们应该考虑主键列,然后是外键列,然后是其他必需列 例如:
c.dept_ID = d.dept_ID
AND d.product_ID = e.product_ID
AND ----
----
在查询性能方面,这些比较的顺序真的重要吗?
查询2: 假设表别名c有100个部门,或者表别名d有10个部门,比较顺序在这里重要吗?喜欢,
c.dept_ID = d.dept_ID or
d.dept_ID = c.dept_ID
查询3: 如果我们同时包含视图和多个表,应该查看相关列的最后还是最先比较?
答案 0 :(得分:0)
这可能取决于此描述中许多未知的事情。诸如索引/统计,表设计,数据等。以不同的方式编写条件,并比较查询优化器产生的查询条件,以找出
答案 1 :(得分:0)
在大多数情况下,加入顺序条件无关紧要。
请问哪个连接将过滤多少数据? 联接是仅过滤数据还是仅需要数据。
查询2:没关系。
查询3:问题无效。具体取决于示例。