我一直收到一条错误,指出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中提到的列的括号。我一开始在他们周围有括号并且出错了,并且对于原因感到困惑。
谢谢!
答案 0 :(得分:0)
最低限度,您应该将其更改为:
SELECT AuthorLast, AuthorFirst, OnHand, Title
FROM Inventory i, Author a, Book b
WHERE i.BookCode = b.BookCode AND
b.AuthorNum = a.AuthorNum;
...这假设select语句的SELECT部分中的列不明确(即,在FROM部分的多个表中找到)。
答案 1 :(得分:0)
您使用的是旧的连接语法,您应该使用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并不是为了它而骗你!例如,您可以对过时的数据库进行查询。