mysql - 如何对连接表执行查询?

标签 mysql sql join alias

我的数据库中有一个名为 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/

相关文章:

使用 Select、Count 和 Group By 的 MySQL 性能问题

php - Mysql将json列与数组进行比较

mysql - 从mysql中获取数据并进行比较

MySQL 自全外连接

java - 在 Hibernate 中更改生成的外键名称

php - 当一个字符串的开头与另一个不同时?

MYSQL select语句通过多个关联实体

sql - 连接具有重复项的 SQL Server 表

mysql - 'on clause' 中的未知列

mysql - 数据库删除旧条目