Due to the nature of your many to many relationship it could return multiple rows. Without the IN operator, a possible alternative was storing the list of values in a separate table, similar to the one called Selection in the following example: The EXISTS function in SQL is important to efficiently test whether at least one row exists in a correlated subquery. Instead of using CALCULATETABLE, in this case you can use a more descriptive RELATEDTABLE function, which has the same behavior and performance, but it is easier to read. Return value The value of result_column at the row where all pairs of search_column and search_value have an exact match. Get 1/0 if current column value exist in another table To learn more, see our tips on writing great answers. Is it possible to rotate a window 90 degrees if it has the same length and width? CALCULATETABLE ( [,