mysql - Multiple json from a database using php

Solution:

I suppose you could group your database rows and comma-delimit them so that they are flat, then unpack/explode them as you iterate.

SELECT errors.error_code,
       errors.issue,
       GROUP_CONCAT(DISTINCT errors.cause) AS causes,
       GROUP_CONCAT(DISTINCT errors.solution) AS solutions,
       GROUP_CONCAT(DISTINCT products.product) AS products
FROM errors 
JOIN products
    ON errors.issue = products.issue
       AND errors.error_code = products.error_code
WHERE errors.error_code = 'A01'
GROUP BY errors.error_code,
         errors.issue;
error_code issue causes solutions products
A01 issue1 cause1.1,cause1.2,cause1.3 solution1.1,solution1.2,solution1.3 P1,P2
A01 issue2 cause1.4 solution1.4 P4

Answer

Solution:

Query the data in the next form:

SELECT error_code, issue, cause, NULL solution, NULL product
FROM ERRORS
UNION ALL
SELECT error_code, issue, NULL, solution, NULL
FROM ERRORS
UNION ALL
SELECT id_error, issue, NULL, NULL, product
FROM PRODUCTS
ORDER BY error_code, issue, cause IS NULL, solution IS NULL

(see fiddle), then iterate this rowset in your PHP code.

PS. You cannot aggregate this data into needed JSON on MySQL due to key names duplication.

Source