我只是无法让表索引在此表连接中使用自己:
explain select n.* from npi n,npi_taxonomy nt where n.NPI=nt.NPI_CODE;
以下是我得到的解释输出:
如您所见,它在possible_keys列中找到了键,但键列为空。请帮忙。
答案 0 :(得分:0)
为什么不使用显式连接
SELECT n.* FROM npi n
INNER JOIN npi_taxomoty nt ON (n.NPI = nt.NPI_CODE)
或使用左连接:
SELECT n.* FROM npi n
LEFT JOIN npi_taxomoty nt ON (n.NPI = nt.NPI_CODE)
如果第一个查询返回否结果,但第二个 ,则n.NPI和nt.NPI_CODE之间没有匹配。
作为旁注,我觉得很奇怪你会给一个字段(NPI)和一个表(npi)同名。这令人困惑。
答案 1 :(得分:0)
您的查询会点击表NPI
中的所有行,并且您正在从中选择所有列
为什么要让MySQL在该表上使用索引?
我非常确定如果您只在选择列表中包含列npi
,您将获得所需的行为。