假设我有一个customers
包含 anaccount_number
和 a的表billing_account_number
,如果我链接到另一个需要测试的表,我可以使用以下 or 子句:
select c.name
from customers c
,left join credit_terms ct on account = c.account_number
or account = c.billing_account
但是,我发现以下工作同样有效
select c.name
from customers c
,left join credit_terms ct on account in (c.account_number, c.billing_account)
现在假设它credit_terms.account
已被索引,那么该索引会在两种情况下都使用吗?两个陈述是否相同?是否有任何与其中一项相关的费用?
尽管我对中等级别的 SQL 相当陌生,但我为自己的天真道歉。