I think I've found the problem? Even though the joins between sewer mains look to be clean I think some are ever so slightly overshot and therefore selecting adjacent sewer mains also. When I select a single sewer main in (mapview) in one of the join tables, the resulting selection table selects that sewer main and the adjacent sewer main. Similarly where there is a main adjoined at opposite ends by another main, if I select the main in the middle, its selects the 2 adjoining mains also.
So I tried the SQL Select again using "Contains Entire" instead of "Intersect" and the resulting table did not return duplicates.
Having said that, no matter how far I zoom in on the joins I cannot see any evidence of being overshot?