The data set is like this:
Table A
==type===|| ===score====
Two columns type ands score,
and Table B
==== id ==== || ==== data ====
Two columns as well id and data.
So, the details are as follows:
the id in table B should be an INNER JOIN for the type in table A.
Now an example case of data in each table,
table A:
type == A, score = 75. type == A, score = 80. type == B, score = 65. type == B, score = 75.
and table B:
id == A, data = "Good score" id == B, data = "Not bad..."
I want the query to only select the data that is unique and distinct to it’s own category type i.e. if A it should be score of 80 and not score of 75 as 75 is unique to type B’s score.
Hope that helps with the problem dilemma, and I would appreciate any guidance to this question.
Advertisement
Answer
You can use NOT EXISTS and a correlated subquery to check for the non existence of rows with the same score but different type.
SELECT a1.type,
a1.score,
b1.data
FROM a a1
INNER JOIN b b1
ON b1.id = a1.type
WHERE NOT EXISTS (SELECT *
FROM a a2
WHERE a2.score = a1.score
AND a2.type <> a1.type);