我厚吗?MySQL:LEFT JOIN上的"不唯一表/别名"

Ben*_*san 5 mysql sql left-join

我有以下SQL语句返回" 不唯一的表/别名 ".我相当肯定,我只是缺少的东西在这里很明显,当提到可能不是不够具体StockID,因为它是一个共同的字段名StockSuppliersStock.Stock外键中的主键SuppliersStock

SELECT Stock.BuyingPrice, SuppliersStock.StockID, SuppliersStock.Quantity
FROM Stock
LEFT JOIN Stock on Stock.StockID = SuppliersStock.StockID 
WHERE Stock.StockID = <some-integer />
Run Code Online (Sandbox Code Playgroud)

Stock表中有关于股票的具体信息,Suppliers对供应商的信息,并SuppliersStock有新的股票信息,订单外键引用StockSuppliers.

我想要做的就是返回BuyingPrice(从Stock)StockID,Quantity(从SuppliersStock)字段,以便我能产生的费用清单新股订货.

免责声明:我知道,关于SQL连接的另一个问题.别伤害我!我用谷歌搜索过,我已经搜索过但我有点糊涂了,我老老实实地试图寻找一个类似的问题,以了解更多关于我能做些什么来解决这个问题,但是得到了王牌.请帮忙?

Ray*_*Ray 9

你的'from'和'left join'都引用了同一个表'Stock'.更改其中一个以参考'SupplierStock'


Mic*_*ski 7

看起来你正在跳过别名SuppliersStock,或者它是一个不同的表:

/* If SuppliersStock is a different table */
SELECT Stock.BuyingPrice, SuppliersStock.StockID, SuppliersStock.Quantity
FROM Stock
LEFT JOIN SuppliersStock on Stock.StockID = SuppliersStock.StockID 
WHERE Stock.StockID = <some-integer />

/* If SuppliersStock is the same table, needing an alias */
SELECT Stock.BuyingPrice, SuppliersStock.StockID, SuppliersStock.Quantity
FROM Stock
LEFT JOIN Stock AS SuppliersStock on Stock.StockID = SuppliersStock.StockID 
WHERE Stock.StockID = <some-integer />
Run Code Online (Sandbox Code Playgroud)