I think that the way you are wanting to do this should work so long as the the sizes table has multiple entries for a given category, one record for each size and price.
If this is the case then on the details page you would want to have a recordset like this:
SELECT items.SizeID, items.ItemID, sizes.*
FROM items JOIN sizes ON items.SizeID = sizes.SizeCatID
WHERE items.ItemID = <your item id>
This should work to create a recordset of size values for the given item. This is the way that you would want to do this if you only had the item's id available to you. If you had the size id from that item available then you could have a much simpler query, it would be like this:
SELECT * FROM sizes
WHERE sizes.SizeCatID = <the size id for the item>
This is probably the best way to go if you can pass along the size id with the item.
The first rs with the join must be crafted in the advanced view, but the second one can be created in the simple recordset view within DW. For the advanced one you would need to make a new SQL variable and then set it's value to the id for the item that is being passed. The simple view recordset can be configured with just some filtering based on the size id from a URL parameter or from a form post.