【发布时间】:2018-08-10 19:11:29
【问题描述】:
我正在尝试向一个业余爱好者朋友提供一些帮助,使用 SQL Server 经验来帮助使用 MySQL。
他正在开发一个游戏数据库。我为他写了这个查询
SELECT ib.itemid, ii.realname as name, ib.stackSize,
IFNULL(ah.price, '-') as price, ah.stock
FROM item_basic ib
LEFT OUTER JOIN item_info as ii ON ii.itemID = ib.itemID
LEFT OUTER JOIN (SELECT price, COUNT(*) as stock
FROM auction_house
GROUP BY itemID) as AH on ii.itemID = AH.itemID -- erring line
ORDER BY ii.realname
还有一个版本在 FROM cluse 中组装了子查询,而不是 JOIN,但这比这个版本麻烦。
这给出了错误 Unknown column 'ah.itemID' in 'on clause'
如果我错误地将错误行更改为... ii.itemID = ib.itemID,则查询会执行,但结果当然不正确(在这种情况下是指数翻倍)。
这是一个带有示例数据的 SQL Fiddle。
【问题讨论】:
标签: mysql outer-join table-alias