So basically I have 2 tables which I merge by
SELECT t2.columnA , t1.columnB, t1.description
FROM Table1 as t1
LEFT JOIN Table2 as t2 on t1.GIDNumber=t2.TwrNumber
I need to display all occurrence of value from t1.columnB in t2.columnA
The perfect situation for this dataset is when there is no duplicated value in column A and value of column B matches value from column A, but i know there is a lot of errors.
This is example of situation i want to display. The value of ColumnB which is in red box appears in ColumnA multiple times.
UPDATE: Sample data for first query
t2.columnA
5900920132278
5900920132278
5900920132278
5900920132278
5900920132278
5900920132278
038548088099
038548088099
038548088099
038548088099
038548088099
5900442707411
5909426907526
5900855046879
4014855166091
5909426909667
t1.columnB
5900920061554
5900920132278
2010000001165
5900920061479
5900920132261
5900920132278
038548088099
5706915071948
38548088099
038548088099
38548088099
2100000038879
2100000035502
2100000030163
4014855026562
2100000031627
In this dataset need to display all records from t2.columnA contains 5900920132278 and 038548088099
UPDATE 2. Data from separate queries:
COLUMN A:
5900920132278
5900920132278
038548088099
038548088099
038548088099
GIDNumber:
21801
37273
97191
163053
165153
ColumnB:
5900920132278
5900920132278
5900920132278
038548088099
038548088099
038548088099
038548088099
TwrNumber:
21801
37273
91424
21801
37273
91424
Solution :
SELECT t2.columnA , t1.columnB, t1.description
FROM Table1 as t1
LEFT JOIN Table2 as t2 on t1.GIDNumber=t2.TwrNumber
WHERE EXISTS
( SELECT 1 FROM Table2 as t3 WHERE t1.colmnB = t3.columnA )
AND t2.columnA <> t1.columnB
Best Answer
Test Data:
Original query
Result:
Adding COUNT() and GROUP BY
Result:
If you also need to check if GIDNumber = TwrNum
As a result, if column
B
matches columnA
but thet1.GIDNumber=t2.TwrNum
does not match, it will show as no match:Extra tests:
Adding the description column:
Result: