gpt4 book ai didi

mysql - 选择请求选择5张表

转载 作者:行者123 更新时间:2023-11-30 00:36:31 24 4
gpt4 key购买 nike

我有 5 张 table :

my_books 表:

  • id_book
  • 标题
  • 价格
  • 描述

流派表:

  • id_流派
  • 流派(本栏中的流派描述)

genre_ind 表:

  • id_book
  • id_genre(表组合了流派和图书表)

作者表:

  • id_author
  • 作者(本栏中的作者姓名)

author_ind 表:

  • id_book
  • id_author

我需要连接表以按流派 ID 选择所有书籍信息。由于作者信息存储在其他表中,我需要根据图书 ID 添加作者信息。

尝试在单个查询中执行此操作,到目前为止我有以下查询:

   SELECT my_books.id_book, 
my_books.title,
my_books.price,
my_books.descrip,
a.genre,
s.authors
FROM my_books
LEFT JOIN genre_ind
ON my_books.id_book = genre_ind.id_book
LEFT JOIN genre a
ON genre_ind.id_genre = a.id_genre
LEFT JOIN author_ind
ON books.id_book=author_ind.id_book
LEFT JOIN authors s
ON author_ind.id_author=s.id_author
WHERE author_ind.id_book=my_books.id_book
AND genre_ind.id_genre=%d

如果我需要根据流派 ID 从 my_books 信息中选择信息,我有功能查询,但随后我尝试扩展它以选择作者信息,但它不起作用!

更新:

现在代码查询如下所示:

    SELECT my_books.id_book,
my_books.title,
my_books.price,
my_books.descrip,
a.genre,
s.authors
FROM my_books
LEFT JOIN genre_ind
ON my_books.id_book = genre_ind.id_book
LEFT JOIN genre a
ON genre_ind.id_genre = a.id_genre
LEFT JOIN author_ind
ON my_books.id_book = author_ind.id_book
LEFT JOIN authors s
ON author_ind.id_author = s.id_author
WHERE genre_ind.id_genre=%d

我得到的错误是:MySQL:#1054 - “字段列表”中的未知列“s.authors”

非常感谢您的帮助,非常感谢

好的,问题解决了。非常感谢您的时间和帮助!!!!

正确查询:

SELECT my_books.id_book,
my_books.title,
my_books.price,
my_books.descrip,
a.genre,
s.author
FROM my_books
LEFT JOIN genre_ind
ON my_books.id_book = genre_ind.id_book
LEFT JOIN genre a
ON genre_ind.id_genre = a.id_genre
LEFT JOIN author_ind
ON my_books.id_book = author_ind.id_book
LEFT JOIN authors s
ON author_ind.id_author = s.id_author
WHERE genre_ind.id_genre=%d

最佳答案

第一个问题是这个on子句:

ON books.id_book=author_ind.id_book

尚未定义任何名为 books 的内容。

第二个问题是 where 子句取消了左外连接的效果。

也许你的意思是这样的:

 FROM my_books LEFT JOIN
genre_ind
ON my_books.id_book = genre_ind.id_book LEFT JOIN
genre a
ON genre_ind.id_genre = a.id_genre LEFT JOIN
author_ind
ON my_books.id_book = author_ind.id_book LEFT JOIN
---------^ changed from `books`
authors s
ON author_ind.id_author=s.id_author
WHERE genre_ind.id_genre=%d

关于mysql - 选择请求选择5张表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22127037/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com