2010-01-15 4 views
0

Я пытаюсь сделать эту работу запроса:SQL Query Продюсерский Нет Результаты

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 и Features (Sku следует связать со столбцом Stock.Sku).

Любая помощь будет оценена по достоинству.

Заранее спасибо.

+1

Я извиняюсь, но если нет StockFeature (как вы сказали, это может быть пустым), с тем, что строка в Stock.Sku вы хотите присоединиться к нему ????? или вам просто нужна полная строка нулей? – gbianchi

ответ

7

Необходимо, чтобы 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 
+0

Можете ли вы дать мне пример, пожалуйста ??? Я пробовал это делать, но, похоже, каждый раз он выдавал ошибку! Довольно новичок в SQL :(. Cheers. – Schodemeiss

+2

Какая ошибка у вас? –

+1

Этот ответ абсолютно идеален. Спасибо вам большое! !! – Schodemeiss

Смежные вопросы