SQL查询不产生任何结果
我试图让这个查询工作:SQL查询不产生任何结果
SELECT Stock.*,
StockFeatures.Features,
StockDescriptions.Detailed,
StockDescriptions.Technical,
PRD1.RuleValue as Price,
PRD2.RuleValue as WasPrice,
PRD2.RuleValue-PRD1.RuleValue as Save,
PRD1.Quantity
FROM
StockFeatures, Stock INNER JOIN
PriceRuleDetail PRD1 ON PRD1.Sku = Stock.Sku
AND PRD1.PriceRule = 'RG' LEFT JOIN
PriceRuleDetail PRD2 ON PRD2.Sku = Stock.Sku
AND PRD2.PriceRule = 'RRP' LEFT JOIN
StockDescriptions ON StockDescriptions.Sku = Stock.Sku
WHERE Stock.GeneralStkStatus < 3
AND Stock.Sku = '11044'
AND StockFeatures.Sku = Stock.Sku
ORDER BY PRD1.Quantity ASC
它时,没有一个StockFeatures.Features行的StockFeatures表不返回任何结果 - 这也经常不会是。我该如何使它只在该表中没有任何内容时才会出现NULL值?
该表具有Sku和特征(Sku应与Stock.Sku列链接)列。
任何帮助,将不胜感激。
在此先感谢。
您需要LEFT JOIN
至StockFeatures
。
例如:(未经测试)
SELECT Stock.*,
StockFeatures.Features,
StockDescriptions.Detailed,
StockDescriptions.Technical,
PRD1.RuleValue as Price,
PRD2.RuleValue as WasPrice,
PRD2.RuleValue-PRD1.RuleValue as Save,
PRD1.Quantity
FROM
Stock LEFT JOIN
StockFeatures ON Stock.Sku = StockFeatures.Sku INNER JOIN
PriceRuleDetail PRD1 ON PRD1.Sku = Stock.Sku
AND PRD1.PriceRule = 'RG' LEFT JOIN
PriceRuleDetail PRD2 ON PRD2.Sku = Stock.Sku
AND PRD2.PriceRule = 'RRP' LEFT JOIN
StockDescriptions ON StockDescriptions.Sku = Stock.Sku
WHERE Stock.GeneralStkStatus < 3
AND Stock.Sku = '11044'
ORDER BY PRD1.Quantity ASC
你能举个例子吗?我试过这样做,但它似乎每次都会出错!对SQL来说很新颖:(。干杯。 – Schodemeiss 2010-01-15 15:23:14
你会得到什么错误? – 2010-01-15 15:25:53
这个答案绝对是完美的。非常感谢你! – Schodemeiss 2010-01-15 15:29:40
我很抱歉,但如果没有StockFeature(如你所说,它可能为空),你想加入该怎么行Stock.Sku ?????或者你只是想要一整行的空值? – gbianchi 2010-01-15 15:25:49