The book that I recommend most for students is Grammar in Use Intermediate by Raymond Murphy. It is very clear, has lots of examples, and it's possible to answer all of the exercises with the information provided in the explanation. I have only used the 3rd edition book (I often photocopy it for my classes), but Cambridge has a new version of the book and an online version.
New words, one handy idiom, and a 2-minute quiz — delivered to your inbox to keep your streak alive.