2017-03-29 1 views
1

Ich schreibe eine mysql Select Sub-Abfrage, das funktioniert gut, es gibt 2 Spalte gibt es Möglichkeit, nur 1 Spalte auszuwählen. Meine Frage istwie zu wählen Sub-Abfrage in anderen Abfrage 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 

Diese Rückkehr zweispaltigen qunt und prdt_ch. Aber ich möchte nur Spalte in Ergebnis Qunt. Gibt es eine Möglichkeit, weil innere Auswahl Abfrage verwendet werden muss, um korrekte Ergebnisse zu erhalten. Hauptzweck dieser Abfrage ist, dass ich diese Abfrage als Sub-Abfrage in einer anderen Abfrage verwenden muß, in diesem Zustand führt es Fehler Vielen Dank im Voraus

Antwort

1

wählen Sie einfach qunt mit Ihrer Auswahlabfrage „Operand 1 Spalte enthalten sollte“ als Tabelle (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

danke, das was ich brauchte –

+0

dank dir .. gute Arbeit – scaisEdge

Verwandte Themen