嗨,我不明白为什么给定查询的子查询正在转换为依赖子查询。Mysql将子查询转换为依赖子查询
虽然子查询在主查询上不依赖(不使用主查询表)。
我知道,这个查询可以使用连接进行优化,但在这里,我只是想知道这
MYSQL Version 5.5
EXPLAIN SELECT id FROM `cab_request_histories`
WHERE cab_request_histories.id = any(SELECT id
FROM cab_requests
WHERE cab_requests.request_type = 'pickup')
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY cab_request_histories index NULL PRIMARY 4 NULL 20
2 DEPENDENT SUBQUERY cab_requests unique_subquery PRIMARY PRIMARY 4 func 1
子查询是否正在执行主查询的每一行?, – praveen 2013-05-02 10:34:55
我想可能是这样。它必须检查每个id是否与历史记录表中的id相同(使用= ANY时可能不需要,但它可以处理> ANY,并且当IN子句或JOIN为更自然的选择) – Kickstart 2013-05-02 10:40:01