I assume that field_2 in table1 contains a key to a row in table 2.
Set up your datagrid to use table1 as a provider. Make sure the second column use the custom renderer with a combobox
<mx:AdvancedDataGrid dataProvider="{table1}">
<mx:groupedColumns>
<mx:AdvancedDataGridColumn headerText="Column 1" dataField="field_1" />
<mx:AdvancedDataGridColumn headerText="Column 2" dataField="field_2"
itemRenderer="{CustomRenderer}"/>
</mx:groupedColumns>
</mx:AdvancedDataGrid>
The renderer is just a canvas with a combobox inside it. The combobox use a copy of the table2 data (just create an array collection and fill it one time with the data from the database) as a provider and use the data from table1 to display the selected item.
<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml" dataChange="dataChange()>
<mx:Script>
<![CDATA[
private function dataChange():void
{
//Update combobox selected index
myCombo.selectedIndex(data);
}
]]>
</mx:Script>
<mx:ComboBox id="myCombo" dataProvider="{table2_copy}"\>
</mx:Canvas>