考虑2个或更多表:

users (id, firstname, lastname)
orders (orderid, userid, orderdate, total)

我希望删除所有users个和他们的orders个名字"Sam"匹配的名字.在mysql中,我通常使用左键连接.在这个例子中,用户ID对我们来说是未知的.

查询的正确格式是什么?

推荐答案

http://www.postgresql.org/docs/current/static/sql-delete.html

DELETE 
FROM orders o
USING users u
WHERE o.userid = u.id
  and u.firstname = 'Sam';

DELETE 
FROM users u
WHERE u.firstname = 'Sam';

您也可以使用ON delete cascade创建该表

http://www.postgresql.org/docs/current/static/ddl-constraints.html

CREATE TABLE order_items (
    product_no integer REFERENCES products ON DELETE RESTRICT,
    order_id integer REFERENCES orders ON DELETE CASCADE,
    quantity integer,
    PRIMARY KEY (product_no, order_id)
);

Database相关问答推荐

使用存储过程从子表中删除数据

Postgres和Oracle之间 Select 查询的结果差异

复合主键

WAMP 的 MySQL 数据库文件位于何处?

在 SQL Server 2008 R2 中,如何强制一列对于整个表是唯一的?

如何连接到 MDF 数据库文件?

操作错误:FATAL: database "django" does not exist

如何在 SQL Server 中生成随机数据?

在 sql server 中存储持续时间(时间跨度)

MySQL JDBC Driver中cachePrepStmts和useServerPrepStmts有什么区别

SQL-Server:还原数据库时,SQL 命令行中的 NOUNLOAD 和 STATS 是什么意思?

将数据库表用作作业(job)队列的最佳方式是什么?

为什么 MySQL 连接被许多连接错误阻止?

如何通过 PHP 和 Linux 使用 pdo 连接到 mssql?

在 SQL Server 2008 中区分两个表架构的最简单方法是什么?

如何将sqlite表从磁盘数据库复制到python中的内存数据库?

如何在 Google AppEngine 上实现自动增量

如何解析来自 Google 快讯的数据?

如何在 SQL Server 中删除多个数据库

归一化 - 2NF 与 3NF