Как уменьшить JSON объект? - PullRequest
1 голос
/ 05 марта 2020

У меня есть файл JSON, созданный по запросу SQL в базе данных. Я пытаюсь сократить несколько строк одного и того же "car_id" в одну строку. Вот пример моего JSON файла с несколькими строками для одного:

[{"car_id":"1","sca_multiverseid":"430690","car_convertedmanacost":"2","car_coloridentity":"W","ccal_capacity":null,"clel_legality":"1","csul_supertype":null,"ctyl_type":"7","cstl_subtype":null,"set_block":"2","car_layout":"7","car_power":"0","car_toughness":"0"},
{"car_id":"1","sca_multiverseid":"430690","car_convertedmanacost":"2","car_coloridentity":"W","ccal_capacity":null,"clel_legality":"2","csul_supertype":null,"ctyl_type":"7","cstl_subtype":null,"set_block":"2","car_layout":"7","car_power":"0","car_toughness":"0"},
{"car_id":"1","sca_multiverseid":"430690","car_convertedmanacost":"2","car_coloridentity":"W","ccal_capacity":null,"clel_legality":"3","csul_supertype":null,"ctyl_type":"7","cstl_subtype":null,"set_block":"2","car_layout":"7","car_power":"0","car_toughness":"0"},
{"car_id":"1","sca_multiverseid":"430690","car_convertedmanacost":"2","car_coloridentity":"W","ccal_capacity":null,"clel_legality":"4","csul_supertype":null,"ctyl_type":"7","cstl_subtype":null,"set_block":"2","car_layout":"7","car_power":"0","car_toughness":"0"},
{"car_id":"1","sca_multiverseid":"430690","car_convertedmanacost":"2","car_coloridentity":"W","ccal_capacity":null,"clel_legality":"5","csul_supertype":null,"ctyl_type":"7","cstl_subtype":null,"set_block":"2","car_layout":"7","car_power":"0","car_toughness":"0"},
{"car_id":"1","sca_multiverseid":"430690","car_convertedmanacost":"2","car_coloridentity":"W","ccal_capacity":null,"clel_legality":"6","csul_supertype":null,"ctyl_type":"7","cstl_subtype":null,"set_block":"2","car_layout":"7","car_power":"0","car_toughness":"0"}]

Я искал в StackOverflow, Google, и либо я не понимал, как уменьшить этот файл до этого.

{"car_id":"1","sca_multiverseid":"430690","car_convertedmanacost":"2","car_coloridentity":"W","ccal_capacity":null,"clel_legality":"1,2,3,4,5,6","csul_supertype":null,"ctyl_type":"7","cstl_subtype":null,"set_block":"2","car_layout":"7","car_power":"0","car_toughness":"0"},

Здесь есть только одно поле для объединения (clel_legality), но может быть несколько полей с разными значениями (например, (car_coloridentity, ccal_capacity, csul_supertype ...)

I'm извините за мой Engli sh, если я допустил ошибку. Заранее спасибо.

Редактировать: Есть мой SQL Запрос:

SELECT car_id, sca_multiverseid, car_convertedmanacost, car_coloridentity, ccal_capacity, clel_legality, csul_supertype, ctyl_type, cstl_subtype, set_block, car_layout, car_power, car_toughness
FROM mag_card A LEFT JOIN mag_setcard B ON A.car_id = B.sca_card
    LEFT JOIN mag_cardcapacityli C ON A.car_id=C.ccal_card
    LEFT JOIN mag_cardlegalityli D ON A.car_id=D.clel_card
    LEFT JOIN mag_cardsupertypeli E ON A.car_id=E.csul_card
    LEFT JOIN mag_cardtypeli F ON A.car_id=F.ctyl_card
    LEFT JOIN mag_cardsubtypeli G ON A.car_id=G.cstl_card
    LEFT JOIN mag_set H ON B.sca_set=H.set_id

1 Ответ

1 голос
/ 05 марта 2020

Благодарность Калебу МакНевину:

SELECT car_id, sca_multiverseid, car_convertedmanacost, GROUP_CONCAT(DISTINCT car_coloridentity), GROUP_CONCAT(DISTINCT ccal_capacity), GROUP_CONCAT(DISTINCT clel_legality), GROUP_CONCAT(DISTINCT csul_supertype),GROUP_CONCAT(DISTINCT ctyl_type), GROUP_CONCAT(DISTINCT cstl_subtype), set_block, car_layout, car_power, car_toughness
FROM mag_card A LEFT JOIN mag_setcard B ON A.car_id = B.sca_card
                LEFT JOIN mag_cardcapacityli C ON A.car_id=C.ccal_card
                LEFT JOIN mag_cardlegalityli D ON A.car_id=D.clel_card
                LEFT JOIN mag_cardsupertypeli E ON A.car_id=E.csul_card
                LEFT JOIN mag_cardtypeli F ON A.car_id=F.ctyl_card
                LEFT JOIN mag_cardsubtypeli G ON A.car_id=G.cstl_card
                LEFT JOIN mag_set H ON B.sca_set=H.set_id
GROUP BY car_id

Команда GROUP_CONCAT (DISTINCT xxx) объединила a и GROUP_BY (primary_key) в конце запроса сработала!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...