the same site collection has two sites: Site A and B. In site A, there's a list named "A.1". In Site B, there's a list named "B.1". If I add a site column (in site collection level) named "contensOf_A.1" which will be a lookup to "A.1", will I be able to add it in list "B.1";
Or, a better alternative, if you are using SharePoint 2010/2013 would be to consider using Managed Metadata, which you can make available across your entire farm.
As Steven stated there is no way to do this OOTB but you can do it with powershell.
Get the lists from different Sites:
$targetWeb = Get-SPWeb http://sitecollection/site1/ $sourceWeb = Get-SPWeb http://sitecollection/site2/ $targetList = $targetWeb.Lists.item("Target List Name") $sourceList = $sourceWeb.Lists.item("Source List Name")
Add the Lookup field on the target list.
$targetList.Fields.AddLookup("LookUpFieldName", $sourceList.id, "false") $LookupField = $targetList.Fields["LookUpFieldName"]
Set properties on the new lookupfield on target list.
$LookupField.LookupWebId = $sourceList.ParentWeb.ID $LookupField.LookupField = $sourceList.Fields["SourceField"].InternalName $LookupField.Update();
The trick is to set
LookupWebId to the SourceWeb's Id and
LookupField to the source lookupfield of the SourceList.