我正在尝试在表中运行子查询:
SELECT t1.*, t2.* FROM t1
LEFT JOIN (SELECT * FROM table2 GROUP BY col1) AS t2 on t1.col1 = t2.col1
WHERE ...
Run Code Online (Sandbox Code Playgroud)
我的主要问题是,由于它自己调用的子查询会拉整个时间,它是否也在子查询中拉整个时间,即使父查询上的 WHERE 条件只拉几行实际数据库?
我想我可以将 where 查询放在子查询中,但它是一个非常复杂的 where 查询,涉及其他表。
不应该。这取决于系统可以将查询简化为什么。
您可以通过考虑查询计划来轻松演示这一点,例如:
SELECT *
FROM YourTable
WHERE ID < 5;
SELECT *
FROM (SELECT * FROM YourTable) as t
WHERE ID < 5;
Run Code Online (Sandbox Code Playgroud)
两者应该是相同的。
归档时间: |
|
查看次数: |
99 次 |
最近记录: |