There are really several options for performing this type of 'merger', but here are a couple.
Update the DataSource of your GridView Control
The simplest method is to update the DataSource so that it includes all of the fields you are looking for. If you are using a DataTable or DataReader as the DataSource of the control, update your query to include the data from the BooksInfo table.
Another option is to create your own data model that would include all three fields and use that as the DataSource. The model might look something like:
<br />
public class GridViewDataSource<br />
{<br />
public string StudentName { get; set; }<br />
public string Address { get; set; }<br />
public string BooksInfoData { get; set; }<br />
Once you have performed your query and populated a List<gridviewdatasource>, you can use that list as the DataSource of the GridView control.
Use a TemplateField and the RowDataBound event
If you subscribe to the RowDataBound event, it will provide you with the information about the row and the bound data element. Using that information, you could then lookup the information in the BooksInfo table, and update the TemplateField with the appropriate data from the results of your lookup.