タイトル、ページ、価格、ロイヤリティなど、すべての書籍に関する情報が含まれているテーブルがあります。 私はこれらのテーブルを使用して5人の著者を検索したいと思います最も高いロイヤルティ率を有する。ここでSQL - テーブル内の5つの数字を見つける
は私のテーブルです:これまでのところ
CREATE TABLE authors
(
au_id CHAR(3) NOT NULL,
au_fname VARCHAR(15) NOT NULL,
au_lname VARCHAR(15) NOT NULL,
phone VARCHAR(12) ,
address VARCHAR(20) ,
city VARCHAR(15) ,
state CHAR(2) ,
zip CHAR(5) ,
CONSTRAINT pk_authors PRIMARY KEY (au_id)
)ENGINE = InnoDB;
CREATE TABLE royalties
(
title_id CHAR(3) NOT NULL,
advance DECIMAL(9,2) ,
royalty_rate DECIMAL(5,2) ,
CONSTRAINT pk_royalties PRIMARY KEY (title_id)
)ENGINE = InnoDB;
、私は最高の料率を選択することができます。 TOP(5)関数を使ってみましたが、うまくいきませんでした。私のコードは以下の通りです。
SELECT au_fname, au_lname
FROM authors
WHERE au_id IN
(SELECT au_id
FROM title_authors
WHERE title_id IN
(SELECT title_id
FROM royalties
WHERE royalty_rate = (SELECT MAX(royalty_rate) FROM royalties)))
ロイヤルティ率が最も高い5人の著者を探すにはどうすればよいですか?
構文はMySQLであるため、MySQLのタグを追加しました。 –