我有一个关于优势子查询的问题。当我分析几个 SQL 查询时,我偶然发现了一个奇怪的情况。
当我执行以下 SQL 时,得到以下结果:
select *
from orderlyn
where OLWArtnr in (select OlwArtnr from prijs)
但 Prijs 表中不存在 OlwArtNr。
CREATE TABLE Prijs (
Nummer Char( 20 ),
Lijst Char( 15 ),
Verkprijs Double( 0 ),
Aankprijs Double( 0 ),
BTW Char( 2 ),
Naam1 Char( 30 ),
Naam2 Char( 30 ),
Naam3 Char( 30 ),
Naam4 Char( 30 ),
Vervangnr Char( 20 ),
Kortcode Char( 10 ),
Datum Date,
Vpeuro Double( 0 ),
A1 Char( 20 )) IN DATABASE;
最让我担心的是,当我使用时,它会给出不同的结果select nummer from prijs
作为子查询。
当该列甚至不存在于另一个表中时,为什么优势会给我结果?我认为它应该给出一个错误。
如果优势在于进行解释,那么它是根据哪些参数来进行解释的?