Это будет примерно так:
SELECT b.Title, b.Edition, b.Year, b.Pages, b.Rating, c.Category, p.Publisher, w.LastName
FROM
Books b
JOIN Categories_Book cb ON cb._ISBN = b._Books_ISBN
JOIN Category c ON c._CategoryID = cb._Categories_Category_ID
JOIN Publishers p ON p._PublisherID = b.PublisherID
JOIN Writers_Books wb ON wb._Books_ISBN = b._ISBN
JOIN Writer w ON w._WritersID = wb._Writers_WriterID
Вы используете оператор join
, чтобы указать, какие поля из таблицы А сопоставить с таблицей В. Я использую здесь псевдонимы, поэтому вы видите Books b
таблица Books
в остальной части запроса будет именоваться b
.Это позволяет меньше печатать.
К вашему сведению, ваше соглашение об именах очень странное, я бы ожидал, что оно будет выглядеть примерно так:
Book: ID, ISBN , BookTitle, Edition, Year, PublisherID, Pages, Rating
Category: ID, [Name]
BookCategory: ID, CategoryID, BookID
Publisher: ID, [Name]
Writer: ID, LastName
BookWriter: ID, WriterID, BookID