Jako TableAID
nie istnieje w TableA
, zapytanie używa kolumny z TableB
. Dlatego zapytanie jest takie samo jak:
delete from TableB
where id in (
select TableB.TableAID
from TableA
where GUID = 'fdjkhflafdhf'
)
Więc w istocie to robi:
delete from TableB
where id in (TableAID)
Jeśli używasz podzapytań, najlepiej podać nazwy tabel podczas odwoływania się. Następujące BĘDZIE zrzuć wyjątek:
delete from TableB
where id in (
select TableA.TableAID
from TableA
where TableA.GUID = 'fdjkhflafdhf'
)
Ponadto użyłbym aliasu, abyśmy wiedzieli, do którego zapytania się odnosimy:
delete from TableB
where id in (
select a.TableAID
from TableA a
where a.GUID = 'fdjkhflafdhf'
)