Minulla on asiakastaulu ja ryhmätaulu:
Haluan siirtää asiakkaan ryhmätauluun ja sinne siirtyy id ja ryhmätunnus.
Miten tarkistan onko asiakas jo laitettu ryhmään ja näin ollen en siirrä sitä sinne uudestaan.
ID ei voi olla primary key, koska ryhmä taulussa voi olla monta saman id:n omaavaa tietoa mutta eri ryhmätunnuksella ja ryhmätunnuksia voi olla monta samaa mutta eri asiakas_id:llä-
jos ymmärsitte mitään ja tiedätte hyviä sivuja mistä löytyy vinkkejä niin kiitoksia taas kerran vaivannäöstänne ja avustanne.
Jos nyt ymmärsin oikein, niin haluat tietää mitä/keitä asiakkaita ei ole ryhmätaulussa. Tuohon olisi helpoin ratkaisu tehdä kysely, joka suoraan kertoo asiakkaat, jotka puuttuvat toisesta taulusta.
SELECT asiakas FROM asiakastaulu WHERE id NOT IN (SELECT id FROM ryhmataulu)
Tuossa olisi kysely, joka palauttaa asiakkaat, joiden id arvoa ei löydy ryhmätaulusta. Eli kysely toimii normaalina hakukyselynä ja se vertaa asiakkaan id arvoa toiseen kyselyyn (alikyselyyn) ryhmätaulusta. Jos arvoa ei löydy niin kysely palauttaa asiakkaan nimen.
Joo haluan tietää mitä ja keitä asiakkaita ei ole siellä, mutta sen tarkistuksen pitäisi tapahtua siinä yhteydessä, kun sinne tallennetaan tietoa. Jos edellä mainittu ohje sen ongelman ratkaisee niin haluaisin siitä vähän lisää selvennystä.
Jos asiakas löytyy ryhmätaulusta, headeroi takaisin virheilmoituksella.
Jos ei, niin:
- valitse * from asiakastaulu where id=id
- insertoi tiedot ryhmätauluun
- headeroi "takaisin" aiemmalle sivulle onnittelevan viestin kera
Nyt voit tehdä sen tarkistuksen kun olet lisäämässä asiakasta ryhmätauluun laita tuohon antamaani lauseeseen lisäehdoksi asiakaan nimi/id jota olet lisäämässä. Esimerkiksi ... WHERE id=444 and id NOT IN ... jos saat tulokseksi hakujoukkoon yhdenkin rivin => asiakas on jo taulussa eikä sitä voi lisätä. Jos rivejä ei tule niin lisää sitten INSERT INTO lauseella se asiakas sinne.
Eli tee ennen lisäys sivulle kysely jolla haet tuon ylhäällä olevan lauseen tulosjoukon. Tutki sitten ehtolauseessa onko tulosjoukossa rivejä ja tee sen perusteella päätös lisätäänkö uusi rivi vai ei.
Tuo toinen kommentti (HellComen) on periaattelta hyvin samantapainen.
Aihe on jo aika vanha, joten et voi enää vastata siihen.