Typical shampoos meant for oily hair work by cleaning aggressively, and don't solve the problem. In fact, they often make it worse.
First of all, hardly anyone has oily hair. What most have is an oily scalp, which may be combined with oily, normal or dry hair.
So what does someone with an oily scalp want from a shampoo ? You might answer: clean hair, so that I can show myself in public without looking like Severus Snape.
That's what most shampoos do: they clean the oil away, leaving your hair squeaky clean. But only till the next day. If you don't shampoo your hair every two days or every day, you'll look like Snape. that's because the detergent in the shampoo irritates the oil glads, making them produce even more oil.
A good shampoo should cure the problem, not just clean up the symptoms. Ok, the shampoo is not omnipotent, since it's only topical. Drinking less coffee and more water and fixing your diet works wonders for the hair. But back to the shampoo: first of all, it should not contain harsh detergents, aka SLS. Shampoos meant for greasy hair are loaded with it. SLS is also used in degreasing engines, that should give you an idea how strong it is. Throw it into the trash, and find something gentler. The first few days or weeks you hair will be greasy, because it will take some time to notice the gentler shampoo and calm down.
Note: when you are using a SLS-free shampoo, you should avoid those silicones that won't come off the hair without SLS. There is a list of the 'good' and 'bad' silicones here.
I used to have a very greasy scalp, and I went from L'Oreal and Head&Shoulders something to a home-made shampoo* for oily hair (the ingredient that helps with the oiliness is tea-tree oil). It worked so well that after some months I realised that my scalp isn't oily anymore, and now I make shampoo for normal hair. Oh, and I shampoo twice a week.