0
以下this article,我已經能夠部分轉置一個mySQL表。這是表:PUBOT使用GROUP_CONCAT的問題
CREATE TABLE `test`.`treat` (
`patient` INT NOT NULL ,
`pathology` VARCHAR(15) NOT NULL ,
`present` VARCHAR(15) NOT NULL
) ENGINE = MYISAM CHARACTER SET utf8 COLLATE utf8_unicode_ci;
然後,插入一些數據:
INSERT INTO `test`.`treat` (`patient`, `pathology`, `present`)
VALUES ('1', 'myeloid', 'yes'), ('2', 'lymphoid', 'yes'), ('2', 'myeloid', 'no'), ('3', 'myeloid', 'no'), ('4', 'lymphoid', 'yes');
,現在我需要得到什麼patients
由lymphoid
或myeloid
疾病影響:
我得到這樣的表格顯示患者何時患有這些疾病之一,或者如果沒有可用信息,則顯示NULL
:
patient myeloid lymphoid
1 yes NULL
2 no yes
3 no NULL
4 NULL yes
這些數據對應於定期測試。爲了簡化,我已經忽略了test
參數(test INT NOT NULL
)。但問題是當我有兩個數據爲同一個病人。例如,讓我們添加test
鍵和患者2一個新的測試(所有以前test
值對應於測試1):
INSERT INTO `test`.`treat` (`patient`, `pathology`, `present`, `test`)
VALUES ('2', 'myeloid', 'yes', '2');
如果我們運行查詢,我們得到這個表:
patient myeloid lymphoid
1 yes NULL
2 no,yes yes
3 no NULL
4 NULL yes
患者編號2有一個myeloid
行,由* GROUP_CONCAT *生成,並帶有兩個逗號分隔值。我需要爲每個值一行,像這樣:
patient myeloid lymphoid
1 yes NULL
2 no yes
2 yes NULL
3 no NULL
4 NULL yes
什麼必須做的,考慮到測試號?