我没有收到提示报错,可能只是一个小的问题。
EXPLAIN
SELECT
a.nid,
a.title,
a.uid,
b.parent,
b.weight,
c.name,
d.value
FROM table1 AS a INNER JOIN table2 AS b ON a.vid = b.vid AND a.status = 1
INNER JOIN table3 AS c ON c.uid = a.uid
INNER JOIN table4 AS d ON d.content_id = a.nid AND d.value_type = 'percent' AND d.function = 'average'
当我查看所引用的表时,从表4中它只应该选择“value”字段,但是所有的内容都被调用了
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE a ref PRIMARY,vid,status,uid,node_status_type,nid status 4 const 1
1 SIMPLE b eq_ref PRIMARY PRIMARY 4 databasename.a.vid 1
1 SIMPLE c eq_ref PRIMARY PRIMARY 4 databasename.a.uid 1 Using where
1 SIMPLE d ALL NULL NULL NULL NULL 2 Using where
有谁能帮我解决这个问题吗?
发布于 2018-07-23 16:38:37
ALL表示所有行,而不是所有列。
发布于 2018-07-23 16:54:21
需要考虑d.value_type和d.function是否为索引字段。
https://stackoverflow.com/questions/-100000392
复制相似问题