Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

क्या एक MySQL क्वेरी पंक्तियों को कॉलम में बदल सकती है?

कभी-कभी आपकी समस्या को हल करने का पहला कदम यह जानना होता है कि इसे क्या कहा जाता है। उसके बाद, यह केवल गुगली करने की बात है। आप जो बनाने का प्रयास कर रहे हैं उसे पिवट टेबल . कहा जाता है या क्रॉसटैब रिपोर्ट . यहां एक लिंक दिया गया है जिसमें बताया गया है कि MySQL में पिवट टेबल कैसे बनाएं . और यहां अधिक गहराई से ट्यूटोरियल है ।

अपडेट करें:

अब जब आपने प्रश्न अपडेट कर लिया है, तो मुझे इस बात का स्पष्ट अंदाजा है कि आप क्या हासिल करने की कोशिश कर रहे हैं। मैं आपको एक वैकल्पिक समाधान दूंगा जो समान है लेकिन बिल्कुल नहीं MySQL के GROUP_CONCAT के आधार पर आप क्या चाहते हैं समारोह।

select t1.FirstName, t1.LastName, group_concat(concat(t2.FirstName, ' ', t2.LastName))
from member_information as t1
left outer join member_dependent_information as t2 on t2.MemberID=t1.MemberID
group by t1.MemberID;

मैंने इस क्वेरी को निम्नानुसार सत्यापित किया है। पहला सेटअप:

create table member_information (
    MemberID int unsigned auto_increment primary key,
    FirstName varchar(32) not null,
    LastName varchar(32) not null
) engine=innodb;

create table member_dependent_information (
    MemberID int unsigned not null,
    FirstName varchar(32) not null,
    LastName varchar(32) not null,
    Type int unsigned not null,
    foreign key (MemberID) references member_information(MemberID)
) engine=innodb;

insert into member_information (MemberID, FirstName, LastName) values
(1, 'John', 'Harris'),
(2, 'Sarah', 'Thompson'),
(3, 'Zack', 'Lewis');

insert into member_dependent_information (MemberID, FirstName, LastName, `Type`) values
(1, 'Amy', 'Harris', 1),
(2, 'Bryan', 'Thompson', 1),
(2, 'Dewey', 'Thompson', 2),
(2, 'Tom', 'Thompson', 2),
(3, 'Harry', 'Lewis', 2),
(3, 'Minka', 'Lewis', 1);

और अब क्वेरी और परिणाम:

mysql> select t1.FirstName, t1.LastName, group_concat(concat(t2.FirstName, ' ', t2.LastName))from member_information as t1
    -> left outer join member_dependent_information as t2 on t2.MemberID=t1.MemberID
    -> group by t1.MemberID;
+-----------+----------+------------------------------------------------------+
| FirstName | LastName | group_concat(concat(t2.FirstName, ' ', t2.LastName)) |
+-----------+----------+------------------------------------------------------+
| John      | Harris   | Amy Harris                                           | 
| Sarah     | Thompson | Bryan Thompson,Dewey Thompson,Tom Thompson           | 
| Zack      | Lewis    | Harry Lewis,Minka Lewis                              | 
+-----------+----------+------------------------------------------------------+
3 rows in set (0.00 sec)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL कनेक्टर 6.7.4 और एंटिटी फ्रेमवर्क 5 अपवाद

  2. MySQL AUTO_INCREMENT रोलबैक नहीं करता है

  3. MySQL डेटाबेस में अक्षांश और देशांतर मानों को संग्रहीत करने में समस्या

  4. mysql सीमांकक प्रश्न

  5. समानांतर प्रक्रिया बनाने के लिए रूबी ऑन रेल्स में कांटे का उपयोग करना