Apply the two fixes below in order as needed:
1 - launch iPhoto with the Command+Option keys held down and rebuild the library.
iPhoto 8 (09) and earlier- run the options indicated
iPhoto 9 (11) and later- run Option #4 to rebuild the database
Using iPhoto Library Manager to Rebuild Your iPhoto Library
2 - click on the Add Library button and select the library you want to add in the selection window..
3 - Now that the library is listed in the left hand pane of iPLM, click on your library and go to the
File ➙ Rebuild Library (iPhoto 8 or earlier)
Library ➙ Rebuild Library (iPhoto 9 or later)
menu option to rebuild the library.
4 - In the next window name the new library and select the location you want it to be placed.
5 - Click on the Create button.
Note: This creates a new library based on the LIbraryData.xml file in the library and will recover Events, Albums, keywords, titles and comments. However, books, calendars, cards and slideshows will be lost. The original library will be left untouched for further attempts at fixing the problem or in case the rebuilt library is not satisfactory.