webForumDet fria alternativet
Logga in / Bli medlem

Lista tupler som skilje sig...

Databaser & SQL

4 svar · 186 visningar · startad av Engine^

Medlem sedan dec. 20003 887 inlägg
Trådstart#1

Jag har två versioner av samma tabell där det i den ena har gjorts förändringar. Kan jag med en enkel ;) SQL-fråga lista de rader som inte är lika?

typ SELECT tabell2.* FROM tabell2 WHERE NOT [rad i tabell1] = [rad i tabell2] AND tabell1.ID = tabell2.ID

Medlem sedan dec. 200012 464 inlägg
#2
select * from table2 
where pkColumn not in (select pkColumn from table1)
Medlem sedan dec. 20003 887 inlägg
#3

Ungefär... jag skulle dock vilja jämföra alla kolumner på en gång och om någon skiljer så ska det listas. Måste jag göra OR i WHERE för varje kolumn jag vill kolla?

SELECT * FROM table2
WHERE column1 NOT IN (SELECT column1 FROM table1)
OR column2 NOT IN (SELECT column2 FROM table1)
.
.
.
OR column[i]n[/i] NOT IN (SELECT colum[i]n[/i] FROM table1)
AND table1.ID = table2.ID
Medlem sedan dec. 200012 464 inlägg
#4
select * from table2 
where exists
(select * from table2
  where id = table1.id 
       and (col1 <> table1.col1
       or   col2 <> table1.col2
       or   col3 <>  table1.col3))
Medlem sedan dec. 20003 887 inlägg
#5

Jag lär vara snurrig... det här var egentligen det jag ville veta

SELECT t1.*
FROM tblArtikelRegister1 AS t1
INNER JOIN tblArtikelRegister AS t2 ON t1.intArtikelID = t2.intArtikelID
WHERE NOT t1.intAntalILager = t2.intAntalILager
OR NOT t1.bGruppArtikel = t2.bGruppArtikel
OR NOT t1.bLagerArtikel = t2.bLagerArtikel
OR NOT t1.cryInköpsPris = t2.cryInköpsPris
OR NOT t1.strLagerPlats = t2.strLagerPlats;

Jag är iofs intresserad om det går att jämföra alla kolumner i en tabellrad med alla kolumner i en annan tabellrad, två olika tabeller med nästan samma data.

251 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
118 ms — deklarationer (db)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)
119 ms — ändringar (db)