How would I go about getting distinct pairs from a column with a constraint that a pair should not be repeated? So I have a query as such
SELECT DISTINCT s1.author_set_s_author_id,
s2.author_set_s_author_id
FROM submission_record_author_set s1, submission_record_author_set s2
WHERE s1.author_set_s_author_id != s2.author_set_s_author_id;
This gets me all possible pairs from that column with a constraint that it cannot pair with it self but this can still happen: (1,2) and (2,1).
A pair should never be repeated in my case. So the pair of 1 and 2 should only appear once. Any suggestions on how I would add that constraint to my SQL query?
Advertisement
Answer
You can simply replace the != comparison in your WHERE clause with either < (to get (1,2) instead of (2,1)) or > (to get (2,1) instead of (1,2)):
SELECT DISTINCT s1.author_set_s_author_id,
s2.author_set_s_author_id
FROM submission_record_author_set s1, submission_record_author_set s2
WHERE s1.author_set_s_author_id < s2.author_set_s_author_id;