Check 2 tables for differences, use programming language or pure SQL I'm trying to check 2 tables (10k plus rows) for inconsistent data. e.g. both table have a &quot;id&quot; and &quot;price&quot; column and I want to know when id are equal are the price also equal. I would like to create a output that tells me exactly which id have different/inconsistent prices.  I have to do this check 3 times where 1a,1b,1c is all on different servers.
table1 - table1a
table1 - table1b
table1 - table1c

Is this more efficiently done with pure SQL or with a programming language + SQL (python with pyodbc or java with jdbc etc). Since I'm new to SQL I don't know how trivial this would be with pure SQL.
Assuming you have access to all three servers from one of the servers, you can do this easily in SQL. I'm not sure if you meant Microsoft SQL Server when you tagged your question as &quot;sql-server&quot; (which is the tag for specifically Microsoft SQL Server), since you mention Python and Java so I won't go into the specifics of setting up linked servers or remote querying.
But in general this is an ANSI SQL way of comparing two tables and getting only the differences (so this will work in Microsoft SQL Server, Oracle SQL, MySQL, PostgreSQL, etc):
SELECT * -- Replace * with the actual columns you want, as SELECT * is bad practice
FROM table1 -- Source table
INNER JOIN table1a -- Server 1's Table
    ON table1.id = table1a.id -- Same id 
    AND table1.price &lt;&gt; table1a.price -- Different price

If you want one dataset combined of the differences from all three servers this is how you can do it:
SELECT * -- Replace * with the actual columns you want, as SELECT * is bad practice
FROM table1 -- Source table
INNER JOIN table1a -- Server 1's Table
    ON table1.id = table1a.id -- Same id 
    AND table1.price &lt;&gt; table1a.price -- Different price

UNION ALL

SELECT * -- Replace * with the actual columns you want, as SELECT * is bad practice
FROM table1 -- Source table
INNER JOIN table1b -- Server 2's Table
    ON table1.id = table1b.id -- Same id 
    AND table1.price &lt;&gt; table1b.price -- Different price

UNION ALL

SELECT * -- Replace * with the actual columns you want, as SELECT * is bad practice
FROM table1 -- Source table
INNER JOIN table1c -- Server 3's Table
    ON table1.id = table1c.id -- Same id 
    AND table1.price &lt;&gt; table1c.price -- Different price

The above uses the UNION ALL operator to bring back all 3 datasets as a single dataset.
Per your comments that this is Microsoft SQL Server, then you can look into using Linked Servers and OPENQUERY. Additionally these resources are particularly helpful for setting up access to remote servers:

MS Docs on Remote Servers
Querying remote data sources in SQL Server

To answer your main question, in short, yes this is a perfect data problem that can be done purely and simply in SQL.