table exists on 'show tables' - can't query
Look at the question again. You ran

mysql&gt; show tables;


What does the output header say ?

+-------------------+
| Tables_in_photos  |
+-------------------+


That means you were standing in the photos database.

If you had run

SELECT database();


or 

SELECT schema();


It would have echoed photos.

Now, look at the error message

mysql&gt; select * from captions_images;
 ERROR 1146 (42S02): Table 'ig_call.captions_images' doesn't exist


Since you were standing in the ig_call database and you issued select * from captions_images;, mysql assumed you want to select from captions_images tables in the ig_call database.

Try the following

select * from photos.captions_images limit 10;


If you get the same kind of message, then you have corrupt table issues in terms of the InnoDB data dictionary. If you get data, then you were simply in the wrong place at the wrong time. In your case, you were in the wrong database at the wrong time.