2013-02-13 20 views
5

एसक्यूएल का उपयोग करते हुए मैं एक पंक्ति में एकाधिक पंक्तियों को कैसे जोड़ूं? मेरे डेटाबेस डीबी 2एसक्यूएल में एक पंक्ति के अंदर कई पंक्तियों को कैसे जोड़ना है?

TableFoo 
------- 
Id  Name 
1  Apples 
1  Tomatoes 
1  Potatoes 
2  Banana 
2  Peach 

है मैं

ID  FruitsAvailable 
------------------------- 
1  Apples, Tomatoes, Potatoes 
+0

कि डीबीएमएस प्रयोग कर रहे हैं पर निर्भर करता है। –

+0

@MahmoudGamal मैं डीबी 2 लोगों का उपयोग कर रहा हूं –

+0

पोस्ट पर उत्तर वह नहीं है जो मैं देख रहा हूं .. मुझे लगता है कि –

उत्तर

6

की तरह कुछ कोशिश इस

SELECT id ,FruitsAvailable 
    FROM 
     (SELECT id , group_concat(Name) as FruitsAvailable 
     FROM TableFoo 
     WHERE id = 1) t 

HERE DEMO SQLFIDDLE

संपादित हैं: डीबी 2 में आप समारोह बनाने और उसके बाद की जरूरत है इसे कहते

CREATE FUNCTION MySchema/MyUDF (
PARCol2 CHAR(5)) 
RETURNS VARCHAR(1024) 
LANGUAGE SQL 
NOT DETERMINISTIC 
READS SQL DATA 
CALLED ON NULL INPUT 
DISALLOW PARALLEL 

BEGIN 
    DECLARE ReturnVal VARCHAR(1024) NOT NULL DEFAULT ''; 

    FOR CsrC1 AS C1 CURSOR 
     FOR SELECT MyCol1 
      FROM MyTable 
      WHERE MyCol2 = ParCol2 
     DO SET ReturnVal = ReturnVal Concat CsrC1.MyCol1; 
    END FOR; 

    RETURN LTRIM(ReturnVal); 
END ; 

और फिर इसे यहाँ

 Select id, MyUDF(Name) as FruitsAvailable 
    From TableFoo 
    where id = 1 
+1

-1 का उपयोग किए बिना कुछ और तरीका है: GROUP_CONCAT MySQL है, यह डीबी 2 –

+0

में मौजूद नहीं है, यह काम नहीं कर सकता है। मुझे लगता है कि group_concat डीबी 2 –

+0

पर समर्थित नहीं है मेरे संपादित उत्तर –

-3

उपयोग इस क्वेरी फोन:

SELECT Id, GROUP_CONCAT(Name SEPARATOR ', ') FROM TableFoo GROUP BY Id; 
+6

-1: GROUP_CONCAT MySQL है, यह डीबी 2 में मौजूद नहीं है –