我有 2 张桌子:
客户表:
siteid nvarchar(2) PRIMARY KEY,
custid int PRIMARY KEY,
fname varchar(30),
lname varchar(30)
儿童表:
childid1 nvarchar(2) PRIMARY KEY,
childid2 int PRIMARY KEY,
siteid nvarchar(2),
custid int,
lname varchar(30),
lname varchar(30),
FOREIGN KEY(siteid)REFERENCES Cust(siteid),
FOREIGN KEY(custid)REFERENCES Cust(custid)
价值观:
客户:
siteid | custid | fname | lname
A1 | 1111 | John | S
A2 | 1111 | Steve | H
B1 | 2222 | Paul | N
C3 | 3333 | Mary | J
孩子们:
childid1 | childid2 | siteid | custid | fname | lname
A6 | 1010 | A1 | 1111 | Lisa | S
A8 | 1011 | A1 | 1111 | Linda | S
A9 | 1012 | A1 | 1111 | Jose | S
D9 | 1013 | A2 | 1111 | Jake | H
D1 | 1014 | B1 | 2222 | Judy | N
D1 | 1015 | B1 | 2222 | Judy | N
我正在寻找没有孩子的卡斯特,这是我的查询:
SELECT * FROM Cust WHERE Cust.siteid NOT IN(
SELECT Children.siteid FROM Children
) AND Cust.custid NOT IN(
SELECT Children.custid FROM Children
)
但结果是空的。由于表具有复合主键,这里的正确查询是什么?