में MYSQL GROUP_CONCAT का उपयोग करना क्या एक MYSQL WHERE क्लॉज में GROUP_CONCAT को रखना संभव है?WHERE क्लॉज
मेरे पास दो टेबल हैं (सदस्यों के लिए एक और भुगतान जानकारी के लिए एक)। उदाहरण
सदस्य तालिका
num, memNumber, fullName, coporateName, surname
001, mem0010, Joe Bloggs, NULL, Bloggs
002, mem0015, NULL, BBC
003, mem0017, John Peters, NULL
004, mem0101, Emma Jane, NULL
भुगतान तालिका
num, memberID, subscriptionYear, amount
001, mem0010, 2008, 30
003, mem0010, 2010, 40
004, mem0015, 2010, 40
005, mem0017, 2009, 35
006, mem0101, 2009, 35
007, mem0017, 2010, 40
मैं निम्न क्वेरी दोनों तालिकाओं से जानकारी प्राप्त करने में है (मैं सरलीकृत यह इसे और अधिक पठनीय बनाने के लिए) ।
SELECT members.num, members.memNumber , members.fullName , members.corporateName ,
CONCAT(members.corporateName , members.surname) AS searchSurname ,
GROUP_CONCAT(payment.subscriptionYear) As subscriptionYear ,
GROUP_CONCAT(payment.amount) AS amount
FROM members
LEFT JOIN payment ON members.memNumber = payment.memberID
WHERE `subscriptionYear` NOT LIKE '%2009%'
GROUP BY members.num
ORDER BY `searchSurname` ASC
लेकिन यह subscriptionYear
स्तंभ के परिणामों से निकाल देता "2009"। क्या देख नहीं सकता है कि 200 परिणामस्वरूप GROUP_CONCAT में है?
शानदार! इतनी जल्दी और सहायक होने के लिए धन्यवाद। ऐसा नहीं लगता था कि यह इतना आसान होगा! किसी कारण से मैं हैविंग में नहीं आया था। यह अब works- चयन members.num, members.memNumber, members.fullName, members.corporateName, concat (members.corporateName, members.surname) searchSurname के रूप में, group_concat (payment.subscriptionYear) subscriptionYear के रूप में, group_concat (payment.amount) राशि के रूप में सदस्यों से बाईं तरफ members.memNumber = payment.memberID जहां 'subscriptionYear' नहीं की तरह '% 2009%' ग्रुप members.num द्वारा होने subscriptionYear नहीं की तरह '% 2009%' भुगतान में शामिल हों 'खोजअर्ननाम' द्वारा आदेश ASC – iagdotme
क्या वह अनावश्यक नहीं है? यदि ग्रुपिंग से पहले आपकी WHERE 200 लाइनों को हटा रहा है, तो इसमें कोई समूहिंग 200 9 भी नहीं होनी चाहिए? या यह सिर्फ आपके उदाहरण का एक उदाहरण है, न कि वास्तविक क्वेरी। – MindStalker