MySQL加入全选

MySQL加入全选,mysql,sql,Mysql,Sql,我有以下表格: 书籍 book_id | book_name | book_photo book_id | rubric_id 标题 rubric_id | rubric_name 作者 author_id | first_name | last_name book_id | author_id BOOK\u RUBRIK book_id | book_name | book_photo book_id | rubric_id 书籍作者 author_id | first_name

我有以下表格:

书籍

book_id | book_name | book_photo
book_id | rubric_id
标题

rubric_id | rubric_name
作者

author_id | first_name | last_name
book_id | author_id
BOOK\u RUBRIK

book_id | book_name | book_photo
book_id | rubric_id
书籍作者

author_id | first_name | last_name
book_id | author_id
我想像这样选择使用联接:

SELECT 
  book.book_name, 
  autor.first_name, 
  autor.last_name, 
  rubric_rubric_name 
FROM book 
  INNER JOIN book_autor ON book.book_id = autor_id 
  LEFT JOIN book_rubric ON book.book_rubric = rubric_id 
ORDER BY book.book_id;

但它不起作用。如何选择书名、标题名、名字和姓氏?

您缺少一个表
作者
,因此无法提取有关作者的数据:

SELECT 
  book.book_name, 
  autor.first_name, 
  autor.last_name, 
  rubric_rubric_name 
FROM book 
  INNER JOIN book_autor ON book.book_id = book_autor.book_id 
  INNER JOIN author ON book_autor.autor_id = autor.autor_id 
  LEFT JOIN book_rubric ON book.book_rubric = rubric_id 
ORDER BY book.book_id;
在book.book\u id=book\u autor.book\u id上添加
内部联接book\u autor
图书上的内部联接作者\u autor.autor\u id=autor.autor\u id
而不是图书上的内部联接作者\u autor.book\u id=autor\u id将解决此问题

编辑:

BOOK
  book_id 
  book_name 
  book_photo

RUBRIC
  rubric_id 
  rubric_name

AUTHOR
  author_id 
  first_name 
  last_name

BOOK_RUBRIK
  book_id 
  rubric_id

BOOK_AUTHOR
  book_id 
  author_id
SELECT 
  b.book_name, 
  a.first_name, 
  a.last_name, 
  br.rubric_name 
FROM 
  BOOK AS b 
  INNER JOIN BOOK_AUTHOR ba ON b.book_id = ba.book_id 
  INNER JOIN AUTHOR a ON ba.author_id = a.author_id 
  LEFT JOIN BOOK_RUBRIK br ON b.book_id = br.book_id 
ORDER BY 
  b.book_id;
我忽略了一个事实,作者脚本中的名字有一些错误。我修正了选择。这是一个道具:

您的表格结构:

BOOK
  book_id 
  book_name 
  book_photo

RUBRIC
  rubric_id 
  rubric_name

AUTHOR
  author_id 
  first_name 
  last_name

BOOK_RUBRIK
  book_id 
  rubric_id

BOOK_AUTHOR
  book_id 
  author_id
SELECT 
  b.book_name, 
  a.first_name, 
  a.last_name, 
  br.rubric_name 
FROM 
  BOOK AS b 
  INNER JOIN BOOK_AUTHOR ba ON b.book_id = ba.book_id 
  INNER JOIN AUTHOR a ON ba.author_id = a.author_id 
  LEFT JOIN BOOK_RUBRIK br ON b.book_id = br.book_id 
ORDER BY 
  b.book_id;
您的选择语句:

BOOK
  book_id 
  book_name 
  book_photo

RUBRIC
  rubric_id 
  rubric_name

AUTHOR
  author_id 
  first_name 
  last_name

BOOK_RUBRIK
  book_id 
  rubric_id

BOOK_AUTHOR
  book_id 
  author_id
SELECT 
  b.book_name, 
  a.first_name, 
  a.last_name, 
  br.rubric_name 
FROM 
  BOOK AS b 
  INNER JOIN BOOK_AUTHOR ba ON b.book_id = ba.book_id 
  INNER JOIN AUTHOR a ON ba.author_id = a.author_id 
  LEFT JOIN BOOK_RUBRIK br ON b.book_id = br.book_id 
ORDER BY 
  b.book_id;

我认为这是不正确的
book\u rubric.rubric.rubric\u id
对不起,我犯了一个错误。请检查作者模式并按照它进行查询。脚本中有几个输入错误。请尝试我的脚本并告诉我是否可以。提前10倍。如果您解决了问题,请@Nevada批准propper答案。