I've inherited a table that contains a list of products. For the sake of simplicity, we'll say the columns are as follows:
ID (the auto-incremented value)
name
description
size
subsetOf
price
The field subsetOf can either be a number that is 0, meaning it's a "base" product, or some other integer, referring to another ID. If it's not 0, it contains a different size and price from the base product with a blank name and description (since those fields should be the same as the base.)
If this were in two separate tables, you could obviously do a join on subsetOf = ID and not have the name or description fields in the second table at all. As it stands, if I do a query for a couple of IDs I may wind up with the following:
ID name description size subsetOf price3 green shirt a nifty green shirt L 0 5.004 XL 3 9.00