Mulla on Asiakkaat taulu, jossa pääavain on "asiakasnumero".
Sitten mulla on toinen taulu "Erikoisasiakkaat" joissa voi olla myös samoja asiakkaita kuin tuossa "Asiakkaa" taulussa. Erikoisasiakkaat taulussa pääavain on "erikoisasiakasnumero" , joka voi siis vastata asiakasnumeroa Asiakkaat taulussa.
Pitäisi tehdä kysely, jossa haen Asiakkaat taulusta kaikki asiakkaat paitsi ne joilla on asiakasnumero myös Erikoisasiakkaat taulussa. Eli en haluu erikoisasiakkaita mukaan.
Miten menis select kysely?
Sitten mulla on toinen taulu "Erikoisasiakkaat" joissa voi olla myös samoja asiakkaita kuin tuossa "Asiakkaa" taulussa. Erikoisasiakkaat taulussa pääavain on "erikoisasiakasnumero" , joka voi siis vastata asiakasnumeroa Asiakkaat taulussa.
Pitäisi tehdä kysely, jossa haen Asiakkaat taulusta kaikki asiakkaat paitsi ne joilla on asiakasnumero myös Erikoisasiakkaat taulussa. Eli en haluu erikoisasiakkaita mukaan.
Miten menis select kysely?
Vastaukset 4
Vanhimmat
Accessista
oikeassa relaatiokannassahan ei tietoa johdeta, kopioida jne jne
Tässä olisi yksi ratkaisuehdotus, miten tuo oikeaoppisen tietokantasuunnittelun kannalta menisi. En sitten tiedä, onko kuinka hankala käytännössä toteuttaa tässä tapauksessa.
Eli Erikoisasiakkaat- ja Asiakkaat-taulut voisi yhdistää samaan Asiakkaat-tauluun. Taulussa olisi sitten kenttä, jossa kerrotaan asiakkaan tyyppi (erikoisasiakas, tavallinen tms.) Tuossa ratkaisussa ei myöskään tulisi samojen asiakastietojen turhaa toistoa eri tauluissa, mikä on tehokkaampaa ja helpottaa ylläpitoa. Sitten tuo kyselykin olisi helppo: select * from Asiakas where tyyppi=...
select asiakkaat.*
from asiakkaat
left join erikoisasiakkaat
on asiakkaat.asiakasnumero = erikoisasiakkaat.erikoisasiakasnumero
where erikoisasiakkaat.erikoisasiakasnumero is null
ja loppuun puolipiste
// henkkohtaisena kommenttina kuitenkin muuttaisin sarakenimiä siten, että erikoisasiakkaat-taulussa olisi "erikoisasiakasnumero":n tilalla "asiakasnumero".