join problemer
Jeg er kommet frem til følgende sql som joiner fra 4 tabeller som ser nogenlunde således ud.analysis:
------------------------------
|id|analysis_name|active|....|
------------------------------
analysis_field:
-------------------------------------------
|id|analysis_id|text_id|reported_vale|....|
-------------------------------------------
result:
-----------------------------------------------------------
|id|sample_id|analysis_id|analysis_field_id|reported_value|
-----------------------------------------------------------
sample:
----------------
|id|remark|....|
----------------
SELECT a.id, a.analysis_name, af.text_id, af.unit, r.reported_value, a.active
FROM analysis a
LEFT JOIN analysis_fields af on a.id = af.analysis_id and af.id = r.analysis_field_id
LEFT JOIN result r on (r.analysis_id = a.id)
WHERE r.sample_id = 2
AND r.analysis_id = 3;
Det jeg vil have ud er 'id' fra analyse, 'analysis_name' + 'active' fra analyse 'Text_id' + 'unit' fra analysis_fields. Samt diverse info fra result.
Der vil være et entry i sample med en sample id.
Der vil være et entry i analysis med analysen der refereres.
Der vil være et antal felter i analysis_fields som kender sin analyse (via analysis_id).
Der vil i kunne være max det samme antal rækker som i analysis_fields. Et resultat kender sin sample, analyse og analysis field.
Data jeg vil have ud skal se nogenlunde sådan ud:
--------------------------------------------------------------
|analysis.id|analysis.unit|analysis_field.textid|result.value|
--------------------------------------------------------------
ovenstående sql skriver data ud hvor der både er rækker i result + analysis field. Det jeg ønsker er også at få skrevet rækker ud som findes i analysis_field men ikke i result...
Det var en lang forklaring... håber det kan hjælpe
