0

以下に示すように mysql クエリがあります。1 つの行に対して必要な結果が正確に返されますが、テスト データに 8 つあると予想される他の行は返されません (8 つの一意のテスト ID があります)。私はこの答えに触発されましたが、明らかに私の実装を台無しにしました.誰かが私が間違っているところを見ていますか?

SELECT 
c.first_name,
c.last_name,
n.test_name,
e.doc_name,
e.email,
e.lab_id,
a.test_id,
a.date_req,
a.date_approved,
a.accepts_terms,
a.res_value,
a.reason,
a.test_type,
a.date_collected,
a.date_received,
k.kind_name,
sum(case when metabolite_name = "Creatinine" then t.res_val end) as Creatinine,
sum(case when metabolite_name = "Glucose" then t.res_val end) as Glucose,
sum(case when metabolite_name = "pH" then t.res_val end) as pH
   FROM test_requisitions      AS a
   INNER JOIN personal_info    AS c   ON (a.user_id = c.user_id)
   INNER JOIN test_types       AS d   ON (a.test_type = d.test_type)
   INNER JOIN kinds            AS k   ON (k.id = d.kind_id)
   INNER JOIN test_names       AS n   ON (d.name_id = n.id)
   INNER JOIN docs             AS e   ON (a.doc_id = e.id)
   INNER JOIN test_metabolites AS t   ON (t.test_id = a.test_id)
   RIGHT JOIN metabolites      AS m   ON (m.id = t.metabolite_id)
   GROUP BY a.test_id
   ORDER BY (a.date_approved IS NOT NULL),(a.res_value IS NOT NULL), a.date_req, c.last_name ASC;
4

1 に答える 1