Como
TableAID
não existe em TableA
, a consulta está usando a coluna de TableB
. Portanto, a consulta é a mesma que:delete from TableB
where id in (
select TableB.TableAID
from TableA
where GUID = 'fdjkhflafdhf'
)
Então, em essência, está fazendo:
delete from TableB
where id in (TableAID)
Se você estiver usando subconsultas, é melhor mencionar os nomes das tabelas ao fazer referência. O seguinte VOCÊ lançar uma exceção:
delete from TableB
where id in (
select TableA.TableAID
from TableA
where TableA.GUID = 'fdjkhflafdhf'
)
Além disso, eu usaria um alias para sabermos a qual consulta estamos nos referindo:
delete from TableB
where id in (
select a.TableAID
from TableA a
where a.GUID = 'fdjkhflafdhf'
)