我有两个具有相同键的表。我想在一个 SELECT 中,无需后续操作内部表中的数据,检索左侧表中右侧表中没有对应记录的所有记录(即右侧表中的列将是空的)。
以下是最合乎逻辑的做法,但这不会编译,因为您可能不会在 WHERE 子句的外部连接中使用右侧的字段:
select e~equnr into lt_equnr
from equi as e
left outer join eqbs as b on e~equnr = b~equnr
where e~matnr = material
and b~b_werk = space.
一个看起来很有希望并且可以编译的替代方法是这个,但它不起作用,因为它甚至会带回那些在右侧表格中具有相应条目的条目:
select e~equnr into table lt_equnr
from equi as e
left outer join eqbs as b on e~equnr = b~equnr
and b~b_werk = space
where e~matnr = material.
此选项仅从右侧清除字段,但仍包括结果集中的所有内容。这可以通过从右侧选择字段来确认。
另一个也不起作用的选项是使用子选择:
select e~equnr into table lt_equnr
from equi as e
where e~matnr = material
and e~equnr not in ( select equnr from equi where equnr = e~equnr ).