我正在编写一个 mysql select 子查询,它工作正常,它返回 2 列,可以只选择 1 列。 我的查询是
SELECT sum(fl.qunt) as qunt,(
SELECT GROUP_CONCAT( xp.id
SEPARATOR ',' )
FROM prdt AS xp
LEFT JOIN prdt_fac AS pf ON pf.fk_product_children = xp.rowid
WHERE pf.prdt_fat = p.id
AND pf.prdt_ch = 6953
GROUP BY pf.prdt_fat
LIMIT 0 , 1
) AS prdt_chd
FROM fac_log AS fl
LEFT JOIN fac AS f ON fl.fac = f.id
LEFT JOIN prdt AS p ON f.prdt = p.id
GROUP BY prod_child
ORDER BY fl.tms DESC
LIMIT 0 , 1
这将返回两列 qunt 和 prdt_ch。 但我只想要结果 qunt 中的列。 有什么办法,因为必须使用内部选择查询才能获得正确的结果。 此查询的主要目的是我必须将此查询用作其他查询中的子查询,在这种情况下它会抛出错误“操作数应包含 1 列” 提前致谢
最佳答案
只需使用您的选择查询作为表来选择 qunt (t)
select qunt from (
SELECT sum(fl.qunt) as qunt,(
SELECT GROUP_CONCAT( xp.id
SEPARATOR ',' )
FROM prdt AS xp
LEFT JOIN prdt_fac AS pf ON pf.fk_product_children = xp.rowid
WHERE pf.prdt_fat = p.id
AND pf.prdt_ch = 6953
GROUP BY pf.prdt_fat
LIMIT 0 , 1
) AS prdt_chd
FROM fac_log AS fl
LEFT JOIN fac AS f ON fl.fac = f.id
LEFT JOIN prdt AS p ON f.prdt = p.id
GROUP BY prod_child
ORDER BY fl.tms DESC
LIMIT 0 , 1 ) t
关于mysql - 如何在其他查询MySQL中使用select子查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43102044/