I don't understand why you can't see the reason.

In the query you propose that uses the table LYENTITY only once, you will get no rows inserted if LYRANGEENTITY.ENTITYKEY_2 and LYRANGEENTITY.ENTITYKEY_1 have different values, whereas in the original version you would still get a result as long as there were values (potentially in different rows) of LYRANGEENTITY.ENTITYKEY_2 and LYRANGEENTITY.ENTITYKEY_1 in the LYENTITY.ENTITYKEY table column.

Mybe the sefl-join thing is confusing you. There are joins in the SQL -- they are expressed by "table1.column1 = table2.column2"