A family of Microsoft relational database management systems designed for ease of use.
............and am not sure what I1 and I2 refer to in the SQL code
They are references to two instances of the Items table. Because the subquery is correlated with the outer query on PublicationID and ItemNumber, it is necessary to differentiate between the two instances of the table. This is done by giving each a distinct alias 'Items AS I1' and 'Items AS I2'. The subquery is then restricted to the current copy (item) of the publication in the outer query:
WHERE I2.PublicationID = Publications.PublicationID
AND I2.ItemNumber = I1.ItemNumber
There is no need to give the Publications table an alias, as this table is not used by the subquery, so the Publications table in the outer query can be referenced by its name in the subquery.
The alias you use is up to you. I follow the convention of using the initial letter (or sometimes letters) of the table name followed by a number.