简体   繁体   中英

Mysql Joining data from 3 tables

I can't seem to figure out what join I need to do. I have 3 tables which have all the information. I've map out the steps but I'm unsure what to do now, I need to display all the books listed from a specific author.

There is 3 tables I need to use

  • Author - which contains author_code, fname & lname.
  • Book - which contains book_code, title, publisher_code, type, price and paperback
  • Wrote - which contains book_code, author_number and sequence

Here's the code so far, really I know I should use author name but i can't figure it out.

SELECT BOOK_CODE
FROM WROTE 
WHERE AUTHOR_NUM = 20
LEFT JOIN AUTHOR
ON WROTE.AUTHOR_NUM = AUTHOR.AUTHOR_NUM;

You need list of book, so start with book table then join it with wrote to get specific author and then join to author to get author data

SELECT BOOK_CODE
FROM BOOK
INNER JOIN  WROTE 
   ON WROTE.BOOK_CODE = BOOK.BOOK_CODE 
   AND WROTE.AUTHOR_NUM = 20
INNER JOIN AUTHOR
   ON AUTHOR.AUTHOR_NUM  = WROTE.AUTHOR_NUM 
SELECT Book.book_code
FROM Book
LEFT JOIN WROTE ON WROTE.book_code = Book.book_code
LEFT JOIN AUTHOR ON AUTHOR.author_code = WROTE.author_number
WHERE AUTHOR.author_code IN (123,456)

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM