An alternative, if the amount of data isn't too large you may want want to consider a user defined function, which can return a table variable which you could use to join to.
SELECT ....
FROM tblCommon c
INNER JOIN dbo.SomeFuntionThatReturnsData(@someparam) s on c.primaryKey = s.foreignKey