ik ben een beetje bang dat de oplossing heel simpel is, maar het wil mij tot nu toe niet lukken
Ik probeer een collega te helpen met het volgende:
Hij heeft in een database twee tabellen ingelezen, accounts en contacts. Een contact is gelinkt aan een account (FK is contact.accountid)
Bij het inlezen kon deze koppeling niet mee, wel is er in de account tabel een uniek veld "importID", en bij de contacts ook dit importID om naar het juiste account te verwijzen (dit is dus gewoon hetzelfde als de link tussen account.accountid en contact.contactid, maar dan met een int ipv een guid).
Nu probeer ik dus een query te maken die de oorspronkelijke link weer herstelt.
Ik dacht dat eerst dat dit zou werken:
Dat geeft de contacts waarbij het importID gelijk is aan die van een account, maar dan heb ik het accountid van het account er niet bij. De accountid mee selecteren in de laatste subquery kan niet, maar ik zie even niet hoe ik dat wel doe, EXISTS gebruiken ipv IN?
Ik probeer een collega te helpen met het volgende:
Hij heeft in een database twee tabellen ingelezen, accounts en contacts. Een contact is gelinkt aan een account (FK is contact.accountid)
Bij het inlezen kon deze koppeling niet mee, wel is er in de account tabel een uniek veld "importID", en bij de contacts ook dit importID om naar het juiste account te verwijzen (dit is dus gewoon hetzelfde als de link tussen account.accountid en contact.contactid, maar dan met een int ipv een guid).
Nu probeer ik dus een query te maken die de oorspronkelijke link weer herstelt.
Ik dacht dat eerst dat dit zou werken:
SQL:
1
2
3
4
5
6
7
8
9
| UPDATE contact SET contact.accountid = account.accountid WHERE ( contact.importID IN ( SELECT account.importID FROM account )) |
Dat geeft de contacts waarbij het importID gelijk is aan die van een account, maar dan heb ik het accountid van het account er niet bij. De accountid mee selecteren in de laatste subquery kan niet, maar ik zie even niet hoe ik dat wel doe, EXISTS gebruiken ipv IN?
Kater? Eerst water, de rest komt later