Mysql 嵌套组_CONCAT查询不';t返回所有值
我有一个包含几个子查询的查询,但奇怪的是子查询不会返回相同的值,就像我手动逐个执行查询一样。。起初我在查询中使用'IN',但没有使用索引,所以我将它们转换为'='。结果与“IN”或使用转换为“=”变量时的结果相同Mysql 嵌套组_CONCAT查询不';t返回所有值,mysql,group-concat,Mysql,Group Concat,我有一个包含几个子查询的查询,但奇怪的是子查询不会返回相同的值,就像我手动逐个执行查询一样。。起初我在查询中使用'IN',但没有使用索引,所以我将它们转换为'='。结果与“IN”或使用转换为“=”变量时的结果相同 SELECT * FROM partners WHERE id = ( SELECT GROUP_CONCAT( partner_id SEPARATOR ' OR id = ' ) FROM product_feeds WHERE id = ( SELECT GROUP
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
我缺少结果。这是一个内部联接的作业,用于从存在关系的多个表中获取结果,而不是试图依赖于GROUP_CONCAT
SELECT
-- Best to specify the precise fields you want here instead of *
*
FROM partners p
INNER JOIN product_feeds pf
ON pf.partner_id = p.id
INNER JOIN product_data pd
ON pd.feed_id = pf.id
INNER JOIN product_categories pc
ON pc.id = pd.category_id
INNER JOIN product_categories pcparent
ON pcparent.id = pc.parent_id
AND pcparent.parent_id = 1
这不是试图依赖于GROUP_CONCAT,而是内部连接从存在关系的多个表中获取结果的工作
SELECT
-- Best to specify the precise fields you want here instead of *
*
FROM partners p
INNER JOIN product_feeds pf
ON pf.partner_id = p.id
INNER JOIN product_data pd
ON pd.feed_id = pf.id
INNER JOIN product_categories pc
ON pc.id = pd.category_id
INNER JOIN product_categories pcparent
ON pcparent.id = pc.parent_id
AND pcparent.parent_id = 1