Aiemmin esimerkkinä käytettyyn artistiin palatakseni, niin miten saan haetuksi artistin nimen perusteella artistin tekemät levyt yhdestä taulusta ja toisesta taulusta vaikka artistin tekemät keikat, niin että mukana on myös ne artistit joilla ei ole levytyksiä tai keikkoja.
taulu1
---------------
numero nimi
---------------
1 aku
2 hannu
3 roope
---------------
taulu2
------------------
numero levy
-----------------------
1 köyhä
3 rikas
1 onnellinen
1 äkäinen
----------------
taulu3
--------------
numero keikka
-----------------
1 ankkalinna
2 hanhivaara
2 sorsanmutka
--------------
ja haun tuloksen pitäisi olla tälläinen :
nimi levyjä keikkoja
-----------------------
aku 3 1
hannu 0 2
roope 1 0
--------------------------
taulu1
---------------
numero nimi
---------------
1 aku
2 hannu
3 roope
---------------
taulu2
------------------
numero levy
-----------------------
1 köyhä
3 rikas
1 onnellinen
1 äkäinen
----------------
taulu3
--------------
numero keikka
-----------------
1 ankkalinna
2 hanhivaara
2 sorsanmutka
--------------
ja haun tuloksen pitäisi olla tälläinen :
nimi levyjä keikkoja
-----------------------
aku 3 1
hannu 0 2
roope 1 0
--------------------------
Vastaukset 2
Vanhimmat
En ole ihan varma, teetkö Accessilla. No, tässä jotain SQL:nä (tehty Accessilla). Jos sulla oli ongelmana saada kyselyyn tietueet, joita "ei ole", esim. Roopella ei ole keikkoja eikä Hannulla levyjä. Käytä silloin left- ja right-joineja. Kun tuplaklikkaat kyselyn rakennenäkymässä liitosta, pääset tekemään em. tempun.
keikat:
SELECT taulu1.nimi, Count(taulu3.keikka) AS keikat
FROM taulu1 LEFT JOIN taulu3 ON taulu1.numero = taulu3.numero
GROUP BY taulu1.nimi;
levyt:
SELECT taulu1.nimi, Count(taulu2.levy) AS levyt
FROM taulu2 RIGHT JOIN taulu1 ON taulu2.numero=taulu1.numero
GROUP BY taulu1.nimi;
molemmat yhdessä:
SELECT keikat.nimi, levyt.levyt, keikat.keikat
FROM keikat INNER JOIN levyt ON keikat.nimi=levyt.nimi;
Accessissa nuo käytettävät taulut on, mutta aspilla ne sieltä haetaan ja tulostetaan selaimen näytölle.