Hallo,
Ik ben nu een tijdje aan het bekijken hoe ik database moet opzetten en dergelijke en had een oude database van mij gepakt en geprobeerd te normaliseren. Volgens mij is het redelijk gelukt maar het lastige is dat ik er nu niet meer uitkom hoe ik echt gegevens moet querien hieruit. Ik weet wel hoe ik tabellen kan joinen maar ik zit nu toch echt vast. De database tabel opzet is alsvolgt:
tbl_bedrijf
tbl_bedrijf_document
tbl_document
Nu kan ik bijvoorbeeld wel een query maken met 1 conditie bijv: selecteer alle bedrijf_id en namen met een document dat deel 1 bevat. Die kan ik redelijk simpel maken met een join en een where conditie:
Dat lukt op zich wel maar nu wil ik het met twee condities doen dus zelfde query als hierboven maar nu wil ik de bedrijven selecteren die een document hebben met deel 1 en 2
Deze query mislukt want ik kan nooit aan de condities voldoen omdat ik elk document_deel heb opgescheiden in aparte rijen (dit moet ik later denk ik ook nog opdelen naar een aparte tabel als ik erzo naar kijk)
Hoe zou ik deze data nu moeten ophalen? Heeft iemand enig idee hoe dit moet met evt een voorbeeld?
Ik ben nu een tijdje aan het bekijken hoe ik database moet opzetten en dergelijke en had een oude database van mij gepakt en geprobeerd te normaliseren. Volgens mij is het redelijk gelukt maar het lastige is dat ik er nu niet meer uitkom hoe ik echt gegevens moet querien hieruit. Ik weet wel hoe ik tabellen kan joinen maar ik zit nu toch echt vast. De database tabel opzet is alsvolgt:
tbl_bedrijf
bedrijf_id | naambedrijf | adresbedrijf |
1 | abedrijf | adres 1 |
2 | bbedrijf | adres 2 |
3 | cbedrijf | adres 3 |
4 | dbedrijf | adres 4 |
5 | ebedrijf | adres 5 |
tbl_bedrijf_document
1 | 1 |
1 | 2 |
1 | 3 |
1 | 4 |
1 | 5 |
2 | 6 |
3 | 7 |
3 | 8 |
3 | 9 |
4 | 10 |
4 | 11 |
5 | 12 |
5 | 13 |
5 | 14 |
tbl_document
document_id | documentnaam | document_deel |
1 | documentc | |
2 | documentc | 1 |
3 | documentc | 2 |
4 | documentc | 3 |
5 | documentc | 4 |
6 | documentb | |
7 | documenta | 1 |
8 | documenta | 2 |
9 | documenta | 5 |
10 | documenty | 1 |
11 | documenty | 2 |
12 | documentg | |
13 | documentg | 1 |
14 | documentg | 2 |
Nu kan ik bijvoorbeeld wel een query maken met 1 conditie bijv: selecteer alle bedrijf_id en namen met een document dat deel 1 bevat. Die kan ik redelijk simpel maken met een join en een where conditie:
SQL:
1
| SELECT b.naambedrijf FROM tbl_bedrijf b JOIN tbl_bedrijf_document bd ON b.bedrijf_id = bd.bedrijf_id JOIN tbl_document d ON bd.document_id = d.document_id WHERE d.document_deel = 1 |
Dat lukt op zich wel maar nu wil ik het met twee condities doen dus zelfde query als hierboven maar nu wil ik de bedrijven selecteren die een document hebben met deel 1 en 2
SQL:
1
| SELECT b.naambedrijf FROM tbl_bedrijf b JOIN tbl_bedrijf_document bd ON b.bedrijf_id = bd.bedrijf_id JOIN tbl_document d ON bd.document_id = d.document_id WHERE (d.document_deel = '1' AND d.document_deel = '2') |
Deze query mislukt want ik kan nooit aan de condities voldoen omdat ik elk document_deel heb opgescheiden in aparte rijen (dit moet ik later denk ik ook nog opdelen naar een aparte tabel als ik erzo naar kijk)
Hoe zou ik deze data nu moeten ophalen? Heeft iemand enig idee hoe dit moet met evt een voorbeeld?
[ Voor 0% gewijzigd door Creepy op 04-09-2013 15:21 ]