Çok arandım, ancak sorunuma uygun bir çözüm bulamadım.SQL GROUP_CONCAT farklı sütunlara bölünmüş
Ne yapmak isterim?
Ben MySQL 2 tablo vardır: - Ülke - Döviz -
çalışan bir örneğin bu Bkz (I CountryCurrency aracılığıyla onları bir araya> nedeniyle birçok ilişki birçok): http://sqlfiddle.com/#!2/317d3/8/0
Her iki tabloyu bir birleştirme kullanarak birbirine bağlamak istiyorum, ancak ülke başına yalnızca bir satır göstermek istiyorum (bazı ülkelerin birden çok para birimi vardır, bu nedenle ilk sorun buydu).
Ben group_concat işlevini bulundu:
SELECT country.Name, country.ISOCode_2, group_concat(currency.name) AS currency
FROM country
INNER JOIN countryCurrency ON country.country_id = countryCurrency.country_id
INNER JOIN currency ON currency.currency_id = countryCurrency.currency_id
GROUP BY country.name
Bu aşağıdaki sonucu vardır:
NAME ISOCODE_2 CURRENCY
Afghanistan AF Afghani
Åland Islands AX Euro
Albania AL Lek
Algeria DZ Algerian Dinar
American Samoa AS US Dollar,Kwanza,East Caribbean Dollar
Ama benim şimdi istiyorum para 2 farklı sütunlarda para (para birimi 1, bölmek olduğunu ...). Zaten MAKE_SET() gibi fonksiyonları denedim ama bu işe yaramıyor.
SQL, dinamik bir sütun sayısını desteklemiyor. Uygulamada bunu yapmak zorunda kalacaksınız. – Vatev
Bunu yapmak için İmleç'te mantığı kullanabilirsiniz. Ancak, imleç ilk önce sonuç kümenizin kaç tane veri sütununa ihtiyaç duyduğunu incelemeliydi. Dinamik olarak doldurulacak ve daha sonra seçilecek bir geçici tablo oluşturun. Bu zorlukla ilgili sorun, dinamik bir sütun sayısıdır. –