2017-03-29 106 views
1

我正在編寫一個mysql select子查詢,即工作正常,返回2列有辦法只選擇1列。 我的查詢是如何在其他查詢中使用select子查詢MySQL

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。 但我只想在結果查詢列。 有沒有什麼辦法,因爲必須使用內部選擇查詢來獲得正確的結果。此查詢的 主要目的是,我要使用這個查詢作爲子查詢中的其他查詢,在這種情況下,它拋出的錯誤使用select查詢「操作數應包含1列」 在此先感謝

回答

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 
+0

謝謝,這是我要求 –

+0

感謝你.. goood工作 – scaisEdge