Als TableAID
existiert nicht in TableA
verwendet die Abfrage die Spalte aus TableB
. Daher ist die Abfrage dieselbe wie:
delete from TableB
where id in (
select TableB.TableAID
from TableA
where GUID = 'fdjkhflafdhf'
)
Im Wesentlichen macht es also:
delete from TableB
where id in (TableAID)
Wenn Sie Unterabfragen verwenden, ist es am besten, Ihre Tabellennamen beim Verweisen zu erwähnen. Die folgenden WERDEN eine Ausnahme auslösen:
delete from TableB
where id in (
select TableA.TableAID
from TableA
where TableA.GUID = 'fdjkhflafdhf'
)
Außerdem würde ich einen Alias verwenden, damit wir wissen, auf welche Abfrage wir uns beziehen:
delete from TableB
where id in (
select a.TableAID
from TableA a
where a.GUID = 'fdjkhflafdhf'
)