编写 SQL 查询 Workbench

Writing SQL Queries Workbench

我在编写此查询时遇到了一些问题。这是我目前所拥有的:

求出一笔交易入金最高的客户名称(包括交易金额)。

select name, amount
from customer, transaction, account
where account.owner_ssn = customer.ssn
and account.type = transaction.type
order by transaction.amount desc 
limit by one;

**这是银行数据库:**

CREATE TABLE customer (
    name VARCHAR(20),
    sex CHAR(1),
    ssn CHAR(9) NOT NULL,
    phone CHAR(15),
    dob DATE,
    address VARCHAR(50),
    PRIMARY KEY(ssn)

);
    
CREATE TABLE account (
    number CHAR(16) UNIQUE NOT NULL,
    open_date DATE,
    type CHAR(20),
    owner_ssn CHAR(9) NOT NULL,
    PRIMARY KEY(number)
    );
    
CREATE TABLE transaction (
    id INT(20) UNIQUE NOT NULL,
    amount DECIMAL(9,2),
    tdate DATE,
    type CHAR(10),
    account_num CHAR(16),
    PRIMARY KEY(id) 
);

下面的查询将return单笔交易中存入金额最高的客户名称。如果有多个客户的最高金额相同,则将选择第一个存入的客户。

select name, amount
from customer c inner join account a
on c.ssn=a.owner_ssn
inner join transaction t 
on a.type = t.type
order by t.amount desc, t.tdate
limit 1;