select id as sales_id
from sl_sales
where sales_id not in (select sales_id from sl_sales_dtls )
为什么上面的sql是错误的。我需要检查是否有没有详细信息的销售。 谁能指导我
答案 0 :(得分:1)
您不能在创建别名的范围内使用创建的别名。您需要:
select id as sales_id
from sl_sales
where id not in (select sales_id from sl_sales_dtls)
答案 1 :(得分:1)
这是不使用内联语句而编写此查询的另一种方法。
create table myTable(
effectiveDate DATE NOT NULL,
family CHAR(6) NOT NULL,
instrument INT NOT NULL,
sedol CHAR(8),
name VARCHAR(100),
icb INT,
QZ DOUBLE,
VZ DOUBLE,
MZ DOUBLE,
SZ DOUBLE,
volZ DOUBLE,
LZ DOUBLE,
DYZ DOUBLE,
QS DOUBLE,
VS DOUBLE,
MS DOUBLE,
SS DOUBLE,
volS DOUBLE,
LS DOUBLE,
DYS DOUBLE,
priceO DOUBLE,
fxO DOUBLE,
capOUSD DOUBLE,
PRIMARY KEY (effectiveDate, instrument));
答案 2 :(得分:1)
我会改用NOT EXISTS
:
select sl.id as sales_id
from sl_sales sl
where not exists (select 1 from sl_sales_dtls dt where dt.sales_id = sl.id);
如果NOT IN
的值为sub-query
, null
将不返回任何行。