我有疑问。假设R和S分别是与属性A和B的2个关系。如果我有疑问
Select *
From R, S
Where R.A = S.B
这是否像 c 或 c++ 中的双 For 循环一样工作
For( i=0; i<n; i++)
For( j=0; j<n; j++)
if (i == j)
//DO some work
最佳答案
首先:不知道 mysql 将如何在内部优化查询(不知道 mysql 的内部结构)。
用纯关系数据库的话来说,这就是你正在做的:
SELECT * FROM R, S
-> 执行交叉连接,生成所有 (r,s) 元组。
WHERE R.A = S.B
-> 现在选择那些具有这种行为的元组
因此它将遍历所有元组(或多或少像您的代码)。然而,mysql 完全有可能在内部将其简化为更高效的内部联接,它从不创建所有元组,而只创建 R.A=S.B
有效的元组。
关于c++ - MySQL 中的 where 子句如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2812959/