已售出给该州的单位总数的州列表

list of states with the total number of units that have been sold to that state

我还是SQL的新手,还得完成手头的任务。任务是: "fake" 位用户下了几个订单。删除用户帐户及其所有订单。 这意味着从 3 个表中删除: 订单详情 命令 客户

ORDERDETAIL 和 ORDERS 的外键是 ORDERID,ORDERS 和 CUSTOMERS 的外键是 CUSTOMERID。我开始使用这个代码:

DELETE ORDERDETAIL.ORDERID
FROM ORDERDETAIL
INNER JOIN ORDERS
ON ORDERDETAIL.ORDERID = ORDERS.ORDERID
WHERE ORDERS.CUSTOMERID = '12341';

只是开始,但即使这样也失败了。

我可以使用什么代码删除在 ORDERDETAIL 和 ORDERS 中共享相同 ORDERID 的所有行以及在 CUSTOMER 和 ORDERS 中共享相同 CUSTOMERID 的所有行?

感谢您的帮助!

您想使用 子查询 来查找要在子 table 中删除的 orderid

delete from orderdetail where orderid in (
     select orderid from orders
      where customerid = '12341'
);

那么您就可以删除对应的订单了:

delete from orders
 where customerid = '12341';

如果 你的 table 设置了 cascading delete,你可以只执行第二个删除语句(无需先执行第一个声明)。