我的数据库中有一个名为 book_collection 的表, 其中包含列:publisherID、title、familyID、bookID 另一个名为 book_authors 的表,其中包含以下列:bookID 和authorID。
我想将表格连接在一起,然后找到所有“书” 具有相同的publisherID和标题。
所以我最初是这样开始的:
SELECT book_collection.publisherId, book_collection.title,<br/> book_authors.authorId FROM book_collection INNER JOIN book_authors ON book_collection.bookId = book_authors.bookId
这将连接表格,但是我现在遇到的问题
我如何对此表执行任何其他查询。
如果我复制此代码并在每个 SELECT * FROM ...
之后粘贴它, 它给
我收到一个错误,说“每个派生表都需要一个别名”?
我不是最擅长 SQL,所以请跟我一起轻松一下。 任何帮助将不胜感激!
最佳答案
Every derived table needs an alias
此错误意味着您需要在列中使用表别名和SELECT STATMENT。
如何使用别名:
如果您不想使用自定义别名,可以使用表名作为别名。
示例:
SELECT collection.* ,authors.* ,book_authors.* FROM ....
其他解决方案:
您还可以使用自定义别名,例如:
SELECT c.* ,a.* , b.* FROM collection c INNER JOIN authors a ON a.columnid = c.columnid ....
此错误的基本原因:
这个错误的原因是因为你在不同的表中有相同的列名,而MYSQL不知道哪一列是哪张表的引用。在此类查询中使用别名总是有帮助的。
旁注:
我建议您使用自定义别名,方便多次编写。基本上创建别名是为了使列名更具可读性。
了解更多基本信息SQL ALIASES
关于mysql - 如何对连接表执行查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34774041/