我在MySQL数据库上做一些工作,完全收到错误时陷入困境
1054 - Unknown column 'Puzzles.PuzzleID' in 'on clause'
表名和列名都存在并且正确。我刚刚在Navicat的视觉设计师中创建了它。
SELECT `PuzzleCategories`.`PuzzleCategory`, `Clients`.`BusinessName`, `Puzzles`.`PuzzleNumber` FROM `Puzzles` Inner Join `PuzzleCategories` ON `Puzzles`.`PuzzleCategoryID` = `PuzzleCategories`.`PuzzleCategoryID` , `Clients` Inner Join `Publications` ON `Clients`.`ClientID` = `Publications`.`ClientID` Inner Join `PublicationIssues` ON `PublicationIssues`.`PublicationID` = `Publications`.`PublicationID` Inner Join `PuzzleUsages` ON `PuzzleUsages`.`PuzzleID` = `Puzzles`.`PuzzleID` AND `PuzzleUsages`.`PublicationIssueID` = `PublicationIssues`.`PublicationIssueID`
如果您确定列名正确,那么问题可能出在连接顺序上。听起来逗号的每一侧的连接都是单独构建的。(我不确定这是否可能,但是这是我根据您提供的信息做出的唯一猜测)
该查询可以重组为:
SELECT `PuzzleCategories`.`PuzzleCategory`, `Clients`.`BusinessName`, `Puzzles`.`PuzzleNumber` FROM `Clients` INNER JOIN `Publications` ON `Clients`.`ClientID` = `Publications`.`ClientID` INNER JOIN `PublicationIssues` ON `PublicationIssues`.`PublicationID` = `Publications`.`PublicationID` INNER JOIN `PuzzleUsages` ON`PuzzleUsages`.`PublicationIssueID` = `PublicationIssues`.`PublicationIssueID` INNER JOIN `Puzzles` ON `Puzzles`.`PuzzleID` = `PuzzleUsages`.`PuzzleID` INNER JOIN `PuzzleCategories` ON `Puzzles`.`PuzzleCategoryID` = `PuzzleCategories`.`PuzzleCategoryID`
反正读起来更好。