Avatar billede dannv Nybegynder
10. oktober 2004 - 17:55 Der er 1 løsning

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
Avatar billede dannv Nybegynder
11. oktober 2004 - 13:11 #1
Forhøjer lige points for at se om det kan lokke folk til...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester