see below if this is what you are expecting:
DataTable table = new DataTable();
table.Columns.Add("ID", typeof(int));
table.Columns.Add("Drug", typeof(string));
table.Columns.Add("Patient", typeof(string));
table.Columns.Add("Date", typeof(DateTime));
table.Rows.Add(25, "Indocin", "David", DateTime.Now);
table.Rows.Add(50, "Enebrel", "Sam", DateTime.Now);
table.Rows.Add(10, "Hydralazine", "Christoff", DateTime.Now);
table.Rows.Add(21, "Combivent", "Janet", DateTime.Now);
table.Rows.Add(100, "Dilantin", "Melanie", DateTime.Now);
DataTable lookuptable = new DataTable();
lookuptable.Columns.Add("lookupID", typeof(int));
lookuptable.Rows.Add(25);
lookuptable.Rows.Add(50);
lookuptable.Rows.Add(10);
lookuptable.Rows.Add(21);
var col = from dr in table.AsEnumerable()
join
dr1 in lookuptable.AsEnumerable() on dr.Field<int>("ID") equals dr1.Field<int>("lookupID")
select dr;
foreach (var item in col)
{
Console.WriteLine(item.Field<string>("Patient"));
}
Console.ReadLine();