mysql - 关于 SELECT 的 SQL 语法

标签 mysql

我一直收到一条错误消息,指出 b.BookCode 不存在特定列,但我完全知道它确实存在!我只是想确定在盯着它看了这么久之后我没有遗漏一些明显的东西。

SELECT AuthorLast, AuthorFirst, OnHand, Title 
FROM (Inventory i, Author a, Book b) 
WHERE (i.BookCode = b.BookCode AND b.AuthorNum = a.AuthorNum);

我是 SQL 的新手,所以我不确定我的语法是否错误,我还需要在 SELECT 中提到的列周围加上括号。一开始我在它们周围加了括号,结果出错了,我很困惑为什么。

谢谢!

最佳答案

您正在使用旧的连接语法,您应该改用 INNER JOIN。

SELECT AuthorLast, AuthorFirst, OnHand, Title
FROM Inventory i
INNER JOIN Author a
    USING (BookCode)    -- You can also use ON, but USING remove the ambiguous columns
INNER JOIN Book b
    USING (AuthorNum);   -- Same thing here

如果您收到一条错误消息,指出一列不存在,那么,您应该仔细检查一下。 MySQL 不是为了它而对你撒谎!例如,您可能会在过时的数据库上进行查询。

关于mysql - 关于 SELECT 的 SQL 语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4020310/

相关文章:

mysql - 如何避免在 MySQL 中出现 "repair with keycache"?

mysql - 插入MySQL队列的中间

php - CSV 输出显示整个 HTML 页面

python - 涉及两个表的SQL语句

MySQL 查询尝试不使用 SELECT IN

MySQL:按类别计数对项目进行排序

php - 以编程方式用年月值填充列

php - 数据库中的口音

PHP MySQL 查询问题/帮助 - 连接表

mysql - 使用子查询更新总计列