Lysine is really helpful for getting rid of canker sores... doesn't take long. Also, swish some salt water around your mouth and hold it for as long as possible. This also will help with healing the sores. :)
Oh and as for why you would get them.. some people are more prone to them than others. They can be caused by the acid in citrus fruit.