tables right multiple left itself inner how sql sqlite join

right - MĂșltiples combinaciones de SQL



sqlite join multiple tables (3)

Puedes usar algo como esto:

SELECT Books.BookTitle, Books.Edition, Books.Year, Books.Pages, Books.Rating, Categories.Category, Publishers.Publisher, Writers.LastName FROM Books INNER JOIN Categories_Books ON Categories_Books._Books_ISBN = Books._ISBN INNER JOIN Categories ON Categories._CategoryID = Categories_Books._Categories_Category_ID INNER JOIN Publishers ON Publishers._Publisherid = Books.PublisherID INNER JOIN Writers_Books ON Writers_Books._Books_ISBN = Books._ISBN INNER JOIN Writers ON Writers.Writers_Books = _Writers_WriterID.

Necesito ejecutar una consulta Para recuperar datos de varias tablas, pero estoy bastante confundido sobre cómo hacerlo todo a la vez.

Books: _ISBN , BookTitle, Edition, Year, PublisherID, Pages, Rating Categories: _CategoryID, Category Categories_Books: _Categories_Category_ID, _Books_ISBN Publishers: _Publisherid, Publisher Writers: _WriterID, LastName Writers_Books: _Writers_WriterID, _Books_ISBN

Categories_Books and Writers_Books son las tablas intermedias que me ayudan a implementar muchas o muchas relaciones entre las tablas.

Necesito una sola consulta con varias combinaciones para seleccionar:

  • Título, Edición, Año, Páginas, Calificación de Libros
  • Categoría de Categorías
  • Editor de Editores
  • Apellido de escritores

Será algo como esto:

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

Usas la instrucción join para indicar qué campos van del mapa de la tabla A a la tabla B. Estoy usando alias aquí, por eso ves Books b la tabla Books se denominará b en el resto de la consulta. Esto hace menos tipeo.

PARA SU CONVENCIÓN DE NOMBRAMIENTO ES MUY EXTRAÑO, ESPERO QUE SEA MÁS COMO ESTE:

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


SELECT B.Title, B.Edition, B.Year, B.Pages, B.Rating --from Books , C.Category --from Categories , P.Publisher --from Publishers , W.LastName --from Writers FROM Books B JOIN Categories_Books CB ON B._ISBN = CB._Books_ISBN JOIN Categories_Books CB ON CB.__Categories_Category_ID = C._CategoryID JOIN Publishers P ON B.PublisherID = P._Publisherid JOIN Writers_Books WB ON B._ISBN = WB._Books_ISBN JOIN Writers W ON WB._Writers_WriterID = W._WriterID