我有一个带有几个子查询的查询,但奇怪的是子查询不会返回与我手动执行查询相同的值。起初我在查询中使用了“IN”,但没有索引被使用,所以我将它们转换为'='。结果与“IN”或当我使用转换为“=”变体时相同。
SELECT *
FROM partners
WHERE id = (
SELECT GROUP_CONCAT( partner_id
SEPARATOR ' OR id = ' )
FROM product_feeds
WHERE id = (
SELECT GROUP_CONCAT( DISTINCT feed_id
SEPARATOR ' OR id = ' )
FROM product_data
WHERE category_id = (
SELECT GROUP_CONCAT( id
SEPARATOR ' OR category_id = ' )
FROM product_categories
WHERE parent_id = (
SELECT GROUP_CONCAT( id
SEPARATOR ' OR parent_id = ' )
FROM product_categories
WHERE parent_id =1 )
ORDER BY NULL )
ORDER BY NULL )
ORDER BY NULL )
例如,当我手动执行嵌套最深的 3 个子查询时,我得到 10,11,12,33,34,35 作为最终结果。当我一次执行完整的 3 个子查询时,它们返回 10、11、12。
我缺少结果..