[MSSQL] Verschil tussen twee tabellen

Status
Niet open voor verdere reacties.

Feonx

Gebruiker
Lid geworden
14 sep 2008
Berichten
32
Beste mensen,

Ik wil graag weten hoe ik er voor kan zorgen dat ik het verschil (qua records) van 2 tabellen kan krijgen.

Bijvoorbeeld:
Tabel 1:
callid = 1 calldesc = test
callid = 2 calldesc = test2

Tabel 2:
callid = 1 calldesc = test
callid = 2 calldesc = test2
callid = 3 calldesc = test3

Dan wil ik dus als resultaat: callid = 3 calldesc = test3

Ben al uren aan het proberen/zoeken, maar zonder resultaat.

Alvast bedankt,

Groetjes Mike
 
Beste mensen,

Ik wil graag weten hoe ik er voor kan zorgen dat ik het verschil (qua records) van 2 tabellen kan krijgen.

Bijvoorbeeld:
Tabel 1:
callid = 1 calldesc = test
callid = 2 calldesc = test2

Tabel 2:
callid = 1 calldesc = test
callid = 2 calldesc = test2
callid = 3 calldesc = test3

Dan wil ik dus als resultaat: callid = 3 calldesc = test3

Ben al uren aan het proberen/zoeken, maar zonder resultaat.

Alvast bedankt,

Groetjes Mike

zou makkelijk zijn als je wat meer info of wat betere uitleg geeft want zo vind ik het een beetje lastig maarre was ik het goed begrijp wil je de rijen filteren die niet dubbel zijn.
Waarschijnlijk kan je hiervoor JOIN gebruiken.
zoals ik al zei meer of beter uitleg met voorbeeld db ofzo dan kan ik kijken of ik zo'n query kan maken.

Byee VRC
 
[sql]
SELECT veld1, veld2, veld3
FROM tabel1
WHERE NOT EXISTS (
SELECT *
FROM tabel2
WHERE tabel2.veld1 = tabel1.veld1 AND tabel2.veld2 = tabel1.veld2 AND tabel2.veld3 = tabel1.veld3
)
[/sql]

Performance niet gegarandeerd. Een andere manier van data opslag is waarschijnlijk beter, maar daarvoor hebben we meer info nodig over wat je aan het doen bent.
 
Bedankt voor de reactie´s!

zou makkelijk zijn als je wat meer info of wat betere uitleg geeft want zo vind ik het een beetje lastig maarre was ik het goed begrijp wil je de rijen filteren die niet dubbel zijn.
Waarschijnlijk kan je hiervoor JOIN gebruiken.
zoals ik al zei meer of beter uitleg met voorbeeld db ofzo dan kan ik kijken of ik zo'n query kan maken.

Byee VRC

Het is dus de bedoeling dat ik 2 tabellen vergelijk, een tabel staat op de MSSQL server en de ander op de MYSQL server.

De MSSQL database staan de call-logs van de helpdesk, deze tabel waar de call´s instaan moet ook in de MySQL database komen..

Die MySQL server moet dus om de x aantal minuten ge-update worden met de nieuwe data van de MSSQL database.

[sql]
SELECT veld1, veld2, veld3
FROM tabel1
WHERE NOT EXISTS (
SELECT *
FROM tabel2
WHERE tabel2.veld1 = tabel1.veld1 AND tabel2.veld2 = tabel1.veld2 AND tabel2.veld3 = tabel1.veld3
)
[/sql]

Performance niet gegarandeerd. Een andere manier van data opslag is waarschijnlijk beter, maar daarvoor hebben we meer info nodig over wat je aan het doen bent.

Dankje wel, hier kan ik echt wat mee. Ik zal het morgen meteen even testen!
 
Ik heb even de query getest, Zit alleen nu vast.

Mijn query nu is:
SELECT CallID
FROM callLog
WHERE NOT EXISTS (
SELECT *
FROM OPENQUERY(MYSQL, 'SELECT * FROM active_calls') WHERE tabel2.veld1 = tabel1.veld1 AND tabel2.veld2 = tabel1.veld2 AND tabel2

Hoe kan ik de veldnaam ophalen van tabel 2?, omdat deze in linked server (andere database staat) weet ik dit niet..

Iemand enig idee?

Alvast bedankt,

Groetjes Mike
 
De MSSQL database staan de call-logs van de helpdesk, deze tabel waar de call´s instaan moet ook in de MySQL database komen..

Die MySQL server moet dus om de x aantal minuten ge-update worden met de nieuwe data van de MSSQL database.
Is het niet handiger om de originele applicatie aan te passen zodat het de data direct naar zowel mssql als mysql schrijft?
 
Nee helaas niet, deze call-log applicatie is van een bedrijf gekocht en niet open source. En de applicatie draait op allemaal verschillende computers..
 
Als je queries uit kunt voeren op de andere server, kun je eens even in de SQL syntax zoeken naar de queries om de veld namen op te vragen van tabellen.

Ik gebruik ze nooit dus ik ken ze zo niet maar ik weet dat ze er zijn :P
 
Als je queries uit kunt voeren op de andere server, kun je eens even in de SQL syntax zoeken naar de queries om de veld namen op te vragen van tabellen.

Ik gebruik ze nooit dus ik ken ze zo niet maar ik weet dat ze er zijn :P

Mijn excusses,

Ik bedoelde: Hoe kan ik aangeven dat de velden van de linked server komen?
Bijv: LinkedServer.MijnTabel.Mijnveld
(dit werkt alleen niet)
 
Ow, dat weet ik zo niet... ik ben niet bekend met verschillende database drivers op deze manier koppelen.

Weet je zeker dat er niet een makkelijkere manier is om dit te doen?
 
Ik heb het al opgelost:
Code:
CREATE VIEW [dbo].[vw_update_customers] AS
SELECT * FROM WebsiteLogin WHERE Enabled = 1 EXCEPT SELECT  * FROM openquery(MYSQL, 'SELECT * FROM active_customers');

Bedankt voor alle hulp!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan