0% found this document useful (0 votes)
87 views

Book Publication Database (Sample Queries & Solutions Using Basic Commands)

This document provides an overview of the DBA Lab course for 2022-2023, including basic SQL commands and how to create and populate a book publication database. It discusses CREATE TABLE statements to define tables for publishers, subjects, authors, titles, and title-author relationships. It also demonstrates INSERT statements to populate the tables with sample data, and describes SQL commands like SELECT, WHERE, JOIN, ALTER TABLE, UPDATE, DELETE, and logical operators. Sample queries are provided to retrieve author names, book titles, prices and other information from the database tables.

Uploaded by

01fe21bcs030
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
87 views

Book Publication Database (Sample Queries & Solutions Using Basic Commands)

This document provides an overview of the DBA Lab course for 2022-2023, including basic SQL commands and how to create and populate a book publication database. It discusses CREATE TABLE statements to define tables for publishers, subjects, authors, titles, and title-author relationships. It also demonstrates INSERT statements to populate the tables with sample data, and describes SQL commands like SELECT, WHERE, JOIN, ALTER TABLE, UPDATE, DELETE, and logical operators. Sample queries are provided to retrieve author names, book titles, prices and other information from the database tables.

Uploaded by

01fe21bcs030
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 21

COURSE: DBA LAB

(2022-2023)

▪ DEMONSTRATION: 1
▪ BASIC SQL COMMANDS
▪ BOOK PUBLICATION DATABASE
Book Publication Database

Schema Diagram:
Sample Queries:
1. Display the author who has not published any book
2. Display the titles for which the price of book is more than the average price of
book published by WILLEY publications.
3.Display the book title and the discounted price, for those books which are written
by KEVIN LONEY SHILD and a 5% discount is given on its purchase.
4.Retrieve the names of author who have published more than 2 books in the
chronological order.
5. Display the title id of books for which the author details are not known. [use Set
Theory Operator]
6. Retrieve the author name and books written by that author where the author has
email-id but did not have phone number.
7. Display the book title and the discounted price, for those books which are written
by HERBERT SHILD and a 5% discount is given on its purchase.
CREATE TABLES
CREATE TABLE PUBLISHERS
(
PUBID NUMBER(3) CONSTRAINT PUBLISHERS_PK PRIMARY KEY,
PNAME VARCHAR2(30),
EMAIL VARCHAR2(50) CONSTRAINT PUBLISHERS_EMAIL_U UNIQUE,
PHONE VARCHAR2(30)
);

CREATE TABLE SUBJECTS


(
SUBID VARCHAR2(5) CONSTRAINT SUBJECTS_PK PRIMARY KEY,
SNAME VARCHAR2(30)
);

CREATE TABLE AUTHORS


(
AUID NUMBER(5) CONSTRAINT AUTHORS_PK PRIMARY KEY,
ANAME VARCHAR2(30),
EMAIL VARCHAR2(50) CONSTRAINT AUTHORS_EMAIL_U UNIQUE,
PHONE VARCHAR2(30)
);

CREATE TABLE TITLES


(
TITLEID NUMBER(5) CONSTRAINT TITLES_PK PRIMARY KEY,
TITLE VARCHAR2(30),
PUBID NUMBER(3) CONSTRAINT TITLES_PUBID_FK REFERENCES PUBLISHERS(PUBID),
SUBID VARCHAR2(5) CONSTRAINT TITLES_SUBID_FK REFERENCES SUBJECTS(SUBID),
PUBDATE DATE,
COVER CHAR(1) CONSTRAINT TITLES_COVER_CHK CHECK ( COVER IN ('P','H','p','h')),
PRICE NUMBER(4)
);
CREATE TABLE TITLEAUTHORS
(
TITLEID NUMBER(5) CONSTRAINT TITLESAUTHORS_TITLEID_FK REFERENCES TITLES(TITLEID),
AUID NUMBER(5) CONSTRAINT TITLESAUTHORS_AUTHID_FK REFERENCES AUTHORS(AUID),
IMPORTANCE NUMBER(2),
CONSTRAINT TITLESAUTHORS_PK PRIMARY KEY(TITLEID,AUID)
);
INSERT VALUES INTO THE TABLE:
INSERT INTO SUBJECTS VALUES ('ORA','ORACLE DATABASE 12c');
INSERT INTO SUBJECTS VALUES ('JAVA','JAVA LANGUAGE');
INSERT INTO SUBJECTS VALUES ('JEE','JAVA ENTEPRISE EDITION');
INSERT INTO SUBJECTS VALUES ('VB','VISUAL BASIC.NET');
INSERT INTO SUBJECTS VALUES ('ASP','ASP.NET');

INSERT INTO PUBLISHERS VALUES (1,'WILLEY','[email protected]','91-23260877');


INSERT INTO PUBLISHERS VALUES (2,'WROX','[email protected]',NULL);
INSERT INTO PUBLISHERS VALUES (3,'TATA MCGRAW-HILL','[email protected]','91-
33333322');
INSERT INTO PUBLISHERS VALUES (4,'TECHMEDIA','[email protected]','91-33257660');

INSERT INTO AUTHORS VALUES (101, 'HERBERT SCHILD','[email protected]',NULL);


INSERT INTO AUTHORS VALUES (102, 'JAMES GOODWILL','[email protected]',NULL);
INSERT INTO AUTHORS VALUES (103, 'DAVAID HUNTER','[email protected]',NULL);
INSERT INTO AUTHORS VALUES (104, 'STEPHEN WALTHER','[email protected]',NULL);
INSERT INTO AUTHORS VALUES (105, 'KEVIN LONEY','[email protected]',NULL);
INSERT INTO AUTHORS VALUES (106, 'ED. ROMANS','[email protected]',NULL);

INSERT INTO TITLES VALUES (1001,'ASP.NET UNLEASHED',4,'ASP','12-FEB-17','P',540);


INSERT INTO TITLES VALUES (1002,'ORACLE10G COMP. REF.',3,'ORA','10-JAN-17','P',575);
INSERT INTO TITLES VALUES (1003,'MASTERING EJB',1,'JEE','30-DEC-16','H',475);
INSERT INTO TITLES VALUES (1004,'JAVA COMP. REF',3,'JAVA','3-APR-16','P',499);
INSERT INTO TITLES VALUES (1005,'PRO. VB.NET',2,'VB',null,'P',450);

INSERT INTO TITLEAUTHORS VALUES (1001,101,1);


INSERT INTO TITLEAUTHORS VALUES (1002,105,1);
INSERT INTO TITLEAUTHORS VALUES (1002,106,1);
INSERT INTO TITLEAUTHORS VALUES (1004,101,1);
INSERT INTO TITLEAUTHORS VALUES (1005,103,1);
INSERT INTO TITLEAUTHORS VALUES (1005,102,2);
▪ ALTER TABLE
▪ ALTER TABLE - ADD Column
SYNTAX:

ALTER TABLE table_name


ADD column_name datatype;

 EXAMPLE: TO ADD AGE COLUMN INTO TABLE AUTHORS

ALTER TABLE AUTHORS


ADD AGE NUMBER (3);

 EXAMPLE: TO ADD MULTIPLE COLUMNS INTO TABLE STUDENT

ALTER TABLE student


ADD
(
adhaar_no number (10),
phno number (10)
);

▪ ALTER TABLE - DROP COLUMN


SYNTAX:
ALTER TABLE table_name
DROP COLUMN column_name;
 EXAMPLE: TO DELETE THE AGE COLUMN FROM TABLE AUTHORS

ALTER TABLE AUTHORS
DROP COLUMN AGE;

▪ ALTER TABLE - RENAME COLUMN


SYNTAX:
ALTER TABLE table_name
RENAME COLUMN old_name to new_name;
 EXAMPLE: TO CHANGE NAME OF THE AGE COLUMN TO DOB
ALTER TABLE AUTHORS
RENAME COLUMN AGE TO DOB
▪ ALTER TABLE - ALTER/MODIFY DATATYPE
SYNTAX:
ALTER TABLE table_name
MODIFY column_name datatype;

 EXAMPLE: TO MODIFY DATATYPE OF THE COLUMN


ALTER TABLE AUTHORS
MODIFY AGE INT;

 EXAMPLE:

ALTER TABLE student


MODIFY (phno varchar (20));

▪ UPDATE Statement
▪ SYNTAX:
UPDATE table_name
SET column1 = value1, column2 = value2, ...
WHERE condition;

 EXAMPLE: ADDING VALUES INTO AGE COLUMN

UPDATE AUTHORS
SET AGE = 18
WHERE roll_no = 101;

UPDATE AUTHORS
SET AGE = 19
WHERE roll_no = 102;

 EXAMPLE: UPDATING ENTIRE COLUMN

UPDATE AUTHORS
SET AGE = 19
▪ DELETE Statement:
The DELETE statement is used to delete existing records/rows/tuples in a table.
▪ SYNTAX:
DELETE FROM table_name WHERE condition;
EXAMPLE: Deleting all rows from a table DISCOUNTS
DELETE FROM DISCOUNTS;

 EXAMPLE: Deleting selected rows:

TO DELETE ROW FROM TABLE SALES WHOSE STORE_ID(ATTRIBUTE) IS 6380

DELETE
FROM Sales
WHERE stor_id = ‘6380’

▪ SELECT Statement:
▪ SYNTAX:
SELECT column1, column2, ...
FROM table_name;

 EXAMPLE: Select name and phone number from publishers:

SELECT pname, phone


FROM PUBLISHERS

 EXAMPLE: SELECT DISTINCT Syntax: avoids duplicate values

SELECT DISTINCT pname, phone


FROM PUBLISHERS;

SELECT DISTINCT titleid


FROM TITLEAUTHORS

 EXAMPLE: lists the number of different (distinct) titleid:

SELECT COUNT (DISTINCT titleid) FROM TITLEAUTHORS;


▪ WHERE Clause:
▪ It is used to extract only those records that
fulfil a specified condition. It is also used in UPDATE, DELETE, etc.!

Syntax:

SELECT column1, column2, ...


FROM table_name
WHERE condition;

 EXAMPLE: DISPLAY ALL THE INFORMATION WITH RESPECT TO PUBID

SELECT * FROM titles


WHERE PUBID = 3;

▪ Logical & Set Theory Operators:

▪ AND, OR, NOT Operators:


▪ The AND operator displays a record if both the first condition and the second condition is true.
▪ The OR operator displays a record if any of the conditions separated by OR is TRUE.
▪ The NOT operator displays a record if the condition(s) is NOT TRUE.

▪ Operators in The WHERE Clause:

Example operators: = , <, > , <= ,>= , <> , BETWEEN , LIKE , IN

 Example: DISPLAY THE TITLE OF THE BOOKS WHOSE PRICE IS GREATER THAN 500

SELECT *
FROM TITLES
WHERE Price > 500;

JOIN TABLES:
 EXAMPLE: DISPLAY THE DETAILS FROM TABLES TITLES AND TITLEAUTHORS

SELECT *
FROM TITLES, TITLEAUTHORS
WHERE TITLES.TITLEID=TITLEAUTHORS.TITLEID;
▪ BETWEEN:
Syntax:
SELECT column_name(s)
FROM table_name
WHERE column_name
BETWEEN value1 AND value2;

 EXAMPLE: DISPLAY THE DETAILS OF THE TABLE WHERE THE PRICE EXIST BETWEEN 400 AND 500

SELECT * FROM TITLES


WHERE Price BETWEEN 400 AND 500;

 EXAMPLE: DISPLAY THE TITLE OF THE BOOK WHOSE PRICE DOES NOT RANGE FROM 450 TO 550

SELECT TITLE FROM TITLES


WHERE Price NOT BETWEEN 450 AND 550;
EXAMPLE FOR ‘OR’ OPERATOR

 EXAMPLE: DISPLAY THE PUBLISHER AND TITLE OF THE BOOK WHOSE SUBID IS ASP OR JAVA.

SELECT PNAME, TITLE


FROM PUBLISHERSS, TITLES
WHERE PUBLISHERSS.PUBID=TITLES.PUBID
AND SUBID = 'ASP' OR SUBID = 'JAVA';

▪ LIKE PATTERN:
▪ LIKE: Search for a pattern (%-Any string of zero or more characters)

SYNTAX:
SELECT column_name(s)
FROM table_name
WHERE column_name LIKE pattern;

Pattern ? ‘%pattern’ or ‘pattern%’ or ‘%pattern%’

WHERE CustomerName LIKE 'a%' : Finds any values that start with "a"
WHERE CustomerName LIKE '%a' : Finds any values that end with "a"
WHERE CustomerName LIKE 'a_%' : Finds any values that start with "a" and are at least 2 characters in
length.
 EXAMPLE: DISPLAY THE DETAILS OF THE PUBLISHER WHOSE NAME STARTS WITH W

SELECT *
FROM PUBLISHERS
WHERE PNAME LIKE 'W%';

 EXAMPLE: DISPLAY THE DETAILS OF THE PUBLISHERS MATCHING THE CHARACTER W IN THIER
NAME

SELECT *
FROM PUBLISHERS
WHERE PNAME LIKE '%W%';

▪ IN Operator:
To specify multiple possible values for a column. The IN operator allows you to specify multiple values
in a WHERE clause.

SYNTAX:

SELECT column1, column2,..


FROM table
WHERE column IN (value1, value2, value3,...)

-- or --

SELECT column1, column2,..


FROM table
WHERE column IN (SELECT query)

 EXAMPLE:

SELECT * FROM TITLES


WHERE TITLEID IN (1001,1002);

 EXAMPLE: DISPLAY THE TITLE, PUBDATE, COVER, PRICE WHOSE PRICE INCLUDE 540 AND 475

SELECT TITLE, PUBDATE, COVER, PRICE


FROM TITLES
WHERE PRICE IN (540, 475);
 EXAMPLE (minus operator): DISPLAY THE AUTHOR WHO HAS NOT PUBLISHED ANY BOOK

select ANAME
from AUTHORZ
where AUID IN
(select AUID from AUTHORZ minus select AUID from TITLEAUTHORS);

 EXAMPLE (USING IN OPERATOR):: Display the PUBLISHER who DOES NOT HAVE ANY TITLE FOR
THE BOOK.

select PNAME
FROM PUBLISHERS
WHERE PUBID IN
(SELECT PUBID FROM PUBLISHERS MINUS SELECT PUBID FROM TITLES);

 EXAMPLE (USING IN OPERATOR):: DISPLAY THE BOOK TITLES AND PRICE OF THE BOOKS WHOSE
IMPORTANCE IS EQUAL TO 1.

SELECT TITLE, PRICE


FROM TITLES
WHERE TITLEID IN (
SELECT TITLEID FROM TITLEAUTHORS
WHERE IMPORTANCE = 1);

OR

SELECT TITLE, PRICE


FROM TITLES, TITLEAUTHORS
WHERE TITLES.TITLEID=TITLEAUTHORS.TITLEID AND IMPORTANCE = 1;

 EXAMPLE (USING IN OPERATOR): DISPLAY THE BOOK TITLES AND PRICE OF THE BOOKS WHOSE
IMPORTANCE IS NOT EQUAL TO 1.

SELECT TITLE, PRICE


FROM TITLES
WHERE TITLEID NOT IN (
SELECT TITLEID FROM TITLEAUTHORS
WHERE IMPORTANCE = 1);
 EXAMPLE (USING IN OPERATOR): DISPLAY THE DETAILS OF THE PUBLISHER WITH COVER P.

SELECT PNAME
FROM PUBLISHERS
WHERE PUBID IN(
SELECT PUBID FROM TITLES
WHERE COVER='P');

▪ IS NULL, NOT NULL


 EXAMPLE (IS NULL): RETRIEVE THE NAME OF THE AUTHOR THAT CONTAIN ONLY NULL VALUES
FOR PHONE NUMBER

SELECT ANAME
FROM AUTHORZ
WHERE PHONE IS NULL;

 EXAMPLE (NOT NULL): RETRIEVE THE NAME OF THE AUTHOR THAT DOES NOT CONTAIN NULL
VALUES FOR EMAIL ID

SELECT ANAME
FROM AUTHORZ
WHERE EMAIL IS NOT NULL;

▪ AGGREGATE FUNCTIONS (SUM,AVG, COUNT, MIN, MAX):


Aggregate functions perform a calculation on a set of values and return a single, or summary, value.
FUNCTION DESCRIPTION
▪ AVG: Returns the average of all the values, or only the DISTINCT values, in the expression.
▪ COUNT: Returns the number of non-null values in the expression. When DISTINCT is specified, COUNT
finds the number of unique non-null values.
▪ COUNT(*): Returns the number of rows. COUNT(*) takes no parameters and cannot be used with
DISTINCT.
▪ MAX: Returns the maximum value in the expression. MAX can be used with numeric, character and
datetime columns, but not with bit columns. With character columns, MAX finds the highest value in the
collating sequence. MAX ignores any null values.
▪ MIN: Returns the minimum value in the expression. MIN can be used with numeric, character and
datetime columns, but not with bit columns. With character columns, MIN finds the value that is lowest
in the sort sequence. MIN ignores any null values.
▪ SUM: Returns the sum of all the values, or only the DISTINCT values, in the expression. SUM can be used
with numeric columns only.
▪ COUNT() Syntax:
SELECT COUNT(column_name)
FROM table_name
WHERE condition;

▪ AVG() Syntax:
SELECT AVG(column_name)
FROM table_name
WHERE condition;

▪ SUM() Syntax:
SELECT SUM(column_name)
FROM table_name
WHERE condition;

▪ The SQL MIN() and MAX() Functions:


The MIN() function returns the smallest value of the selected column.
The MAX() function returns the largest value of the selected column.

SYNTAX:
SELECT MIN(column_name) SELECT MAX(column_name)
FROM table_name FROM table_name
WHERE condition; WHERE condition;

 EXAMPLE:
SELECT AVG(PRICE)
FROM TITLES
WHERE PRICE>400;

 EXAMPLE:
SELECT MAX(PRICE)
FROM TITLES
WHERE PUBID=3;
▪ AND OPERATOR:
Syntax:
SELECT column1, column2, ...
FROM table_name
WHERE condition1 AND condition2 AND condition3 ...;

EXAMPLE: JOIN THREE TABLES


 EXAMPLE: RETRIEVE THE TITLE OF THE BOOK AND ITS IMPORTANCE MENTIONING THE NAME OF
THE AUTHOR.
SELECT TITLE, IMPORTANCE, ANAME
FROM TITLES, TITLEAUTHORS, AUTHORZ
WHERE TITLES.TITLEID=TITLEAUTHORS.TITLEID AND AUTHORZ.AUID=TITLEAUTHORS.AUID

 EXAMPLE: BOOK IMPORTANCE GREATER THAN OR EQUAL TO 2


SELECT TITLE, IMPORTANCE, ANAME
FROM TITLES, TITLEAUTHORS, AUTHORZ
WHERE TITLES.TITLEID=TITLEAUTHORS.TITLEID AND AUTHORZ.AUID=TITLEAUTHORS.AUID
AND IMPORTANCE>=2

 EXAMPLE: DISPLAY THE PUBLISHER NAME WROX TITLE


SELECT PNAME,TITLE
FROM PUBLISHERS,TITLES
WHERE PUBLISHERSS.PUBID=TITLES.PUBID
AND PNAME='WROX';

 EXAMPLE: DISPLAY NAMES OF THE AUTHOR WHOSE COVER IS EQAUL TO P AND SHOW THE
IMPORTANCE FOR THE SAME AUTHOR
SELECT PNAME, COVER, IMPORTANCE
FROM PUBLISHERS,TITLES, TITLEAUTHORS
WHERE PUBLISHERS.PUBID=TITLES.PUBID AND TITLEAUTHORS.TITLEID=TITLES.TITLEID
AND COVER='P';
 EXAMPLE: DISPLAY THE DETAILS OF THE TITLE WHOSE IMPORTANCE IS NOT EQUAL TO 1
SELECT TITLE, IMPORTANCE
FROM TITLES, TITLEAUTHORS
WHERE TITLEAUTHORS.TITLEID=TITLES.TITLEID
AND NOT IMPORTANCE=1;

 EXAMPLE: DISPLAY THE NAME AND COVER OF THE PUBLISHER WHOSE IMPORTANCE IS NOT
EQUAL TO 1
SELECT PNAME, COVER, IMPORTANCE
FROM PUBLISHERS,TITLES, TITLEAUTHORS
WHERE PUBLISHERS.PUBID=TITLES.PUBID AND TITLEAUTHORS.TITLEID=TITLES.TITLEID
AND NOT IMPORTANCE=1;

▪ ORDER BY :
ASCENDING AND DESCENDING ORDER
The ORDER BY keyword sorts the records in ascending order by default.
To sort the records in descending order, use the DESC keyword.
SYNTAX:
SELECT column1, column2, ...
FROM table_name
ORDER BY column1, column2, ... ASC|DESC;

 EXAMPLE: ASCENDING ORDER


SELECT * FROM TITLES
ORDER BY PRICE;

 EXAMPLE: DESCENDING ORDER


SELECT * FROM TITLES
ORDER BY PRICE DESC;
 EXAMPLE: DISPLAY THE NAMES OF THE PUBLISHERS IN ASCENDING ORDER WITH RESPECT TO
PRICE AND PRICE GREATER THAN 400
SELECT PNAME, PRICE
FROM PUBLISHERS,TITLES
WHERE PUBLISHERS.PUBID=TITLES.PUBID
AND PRICE>400 ORDER BY PRICE;

SAMPLE QUERIES:
 EXAMPLE: Display the titles for which the price of book is more than the average price of book
published by WILLEY publications.

select TITLE
from TITLES
where PRICE>(
select avg(PRICE)
from TITLES ,PUBLISHERSS
where TITLES.PUBID=PUBLISHERSS.PUBID and PNAME='WILLEY');

OR

select TITLE
from TITLES
where PRICE>(
select avg(PRICE)
from TITLES t,PUBLISHERSS p
where t.PUBID=p.PUBID and PNAME='WILLEY');

 EXAMPLE: RETRIVE THE NAME OF THE AUTHOR where the author has email-id but did not had
phone number.
SELECT ANAME
FROM AUTHORS
where phone IS NULL and EMAIL IS NOT NULL;

select * from authors


update AUTHORs
SET PHONE=98233
where aname='KEVIN LONEY';
update AUTHORS
SET PHONE=678233
where aname='JAMES GOODWILL';

select * from authors

 EXAMPLE: Retrieve the author name and books written by that author where the author has
email-id but did not had phone number.

SELECT ANAME, TITLE


FROM AUTHORS, TITLES, TITLEAUTHORS
WHERE AUTHORS.AUID=TITLEAUTHORS.AUID AND TITLEAUTHORS.TITLEID=TITLES.TITLEID
AND phone IS NULL AND EMAIL IS NOT NULL;

OR

select aname,title
from titles t,authors a,titleauthors ta
where a.auid=ta.auid and t.titleid=ta.titleid and a.phone IS NULL AND A.EMAIL IS NOT NULL;

 EXAMPLE: Display the book title and the price, for those books which are written by HERBERT
SCHILD

SELECT TITLE, PRICE


FROM TITLES, AUTHORZ, TITLEAUTHORS
WHERE AUTHORZ.AUID=TITLEAUTHORS.AUID AND TITLEAUTHORS.TITLEID= TITLES.TITLEID
AND ANAME='HERBERT SCHILD';

 EXAMPLE: Display the publisher name, book title and the price, for those books which are written
by JAMES GOODWILL.

SELECT PNAME, TITLE, PRICE


FROM PUBLISHERSS, TITLES, AUTHORZ, TITLEAUTHORS
WHERE PUBLISHERSS.PUBID= TITLES.PUBID AND AUTHORZ.AUID=TITLEAUTHORS.AUID AND
TITLEAUTHORS.TITLEID= TITLES.TITLEID AND ANAME='JAMES GOODWILL';
 EXAMPLE: Display the book title and the discounted price, for those books which are written by
KEVIN LONEY SHILD and a 5% discount is given on its purchase.

select TITLE,(PRICE-PRICE*0.05)
from TITLES t,AUTHORS a,TITLEAUTHORS ta
where t.TITLEID=ta.TITLEID and ta.AUID=a.AUID and ANAME='KEVIN LONEY';

 EXAMPLE: Display the book title and the discounted price, for those books which are written by
any author having the name that includes character ‘a’ and a 5% discount is given on its purchase.

SELECT TITLE,(PRICE-PRICE*0.05)
FROM TITLES T,TITLEAUTHORS TA,AUTHORS A
WHERE T.TITLEID=TA.TITLEID AND TA.AUID=A.AUID AND ANAME LIKE '%A%

 EXAMPLE: Display the author who has written the costliest book.
SELECT *
FROM AUTHORZ
WHERE AUID IN(
SELECT AUID
FROM TITLEAUTHORS
WHERE TITLEID IN(SELECT TITLEID FROM TITLES WHERE PRICE =(
SELECT MAX(PRICE)
FROM TITLES )));

You might also like