select 具有零个子元素的行(连接)

select rows with zero child elements (join)

我有 2 张桌子。这两个表之间存在约束。

Table1 : Table2 = 1 : n

我想 select Table1 元素的键,在 Table2 中没有条目。

示例:

|    Table 1         |
|Key |Col1 |Col2 |...|
|0001|.... |.... |...|
|0002|.... |.... |...|
|0003|.... |.... |...|
|0004|.... |.... |...|

|    Table 2         |
|Tab1|Col1 |Col2 |...|
|0001|.... |.... |...|
|0001|.... |.... |...|
|0003|.... |.... |...|
|0002|.... |.... |...|

Desired output:
0004

输出是 table1 的唯一条目,它在 table2 中没有子条目。

我尝试过很多不同的选择,例如:

SELECT 
    Key
    FROM Table1
    WHERE 
        ( SELECT COUNT(*) FROM Table2 
            WHERE Table1~Key = Table2~Tab1 
            GROUP BY Table2~Tab1 )

SELECT COUNT(Table2)
    Key
    FROM Table1
    INNER JOIN Table2 
        ON Table1~Key = Table2~Tab1.

...

但其中 none 有效。 有没有人得到 ABAP 的有效查询?

select * from table1 where key not in (select tab1 from table2)

试试这个查询

select key from table1 where not EXISTS (SELECT *
              FROM table2
              WHERE table1.key=table2.tab1);

尝试关注,

SELECT Key FROM Table1
WHERE key not in (SELECT distinct tab1 FROM Table2)

没有子选择的解决方案:

SELECT t1~Key FROM Table1 as t1
LEFT JOIN Table2 as t2
WHERE t2~Key is null