我一直收到一条错误消息,指出 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/