我们正在尝试删除所有包含Account name = Banana Republic ....数据的行。
到目前为止,我们有:
Delete Account_T
From Account_T
Join Program_T
Where Account_T.AccountName = Program_T.AccountName
And AccountName = ‘Banana Republic’
以下是表格:
create table Program_T
(AccountName varchar(150) not null unique,
ProgramID int not null,
Revenue int,
Advocates int,
Shares int,
Conversions int,
Impressions int,
LaunchDate date,
CSMID int not null,
constraint Program_PK primary key (AccountName, CSMID),
constraint Program_FK1 foreign key (AccountName) references Account_T(AccountName),
constraint Program_FK2 foreign key (CSMID) references CSM_T(CSMID));
和Account_T表:
create table Account_T
(AccountName varchar(150) not null unique,
Health varchar(10) not null,
EcommercePlatform varchar(50),
CSMID int not null,
Industry varchar(50),
Amount int not null,
constraint Accounts_PK primary key (AccountName),
constraint Accounts_FK foreign key (CSMID) references CSM_T(CSMID));
为什么不做两个delete
s?
delete a from Account_T a
where AccountName = 'Banana Republic';
delete p from Program_T p
where AccountName = 'Banana Republic';
你在Banana Republic
之前和之后使用了坏人物。
写这样的查询:
DELETE Account_T
FROM Account_T AS A
JOIN Program_T AS P
ON A.AccountName = P.AccountName
Where A.AccountName = 'Banana Republic'
我写了DELETE
,但不要忘记总是先用SELECT
测试!
将ON
子句与JOIN一起使用而不是WHERE
中的关节条件,重要的是尊重这一点。