SQL запрос на изменение, чтобы показать сирот - PullRequest
1 голос
/ 01 сентября 2010

Дайте запрос:

SELECT
    tblProducts.ID, tblProducts.views, tblProducts.productName, tblProducts.isForSale, tblProducts.isLimitedStock, tblProducts.stockCount, tblProducts.description, tblProducts.weightKG, tblProducts.basePrice, tblProducts.dateCreated, tblProductCats.catName, 
    (SELECT COUNT(*) FROM tblProductPrices WHERE productId = tblproducts.id) AS priceMods, 
    (SELECT COUNT(*) FROM tblcomments WHERE productId = tblproducts.ID) AS comments,
    (SELECT COUNT(*) FROM tblProductImages WHERE productID = tblproducts.id) AS imageCount
FROM
    tblProducts
INNER JOIN
    tblProductCats ON tblProducts.categoryID = tblProductCats.ID

Если идентификатор категории для продукта равен 0 (tblProducts INNER JOIN tblProductCats ON tblProducts.categoryID = tblProductCats.ID), он не будет возвращать запись продукта, есть ли способ изменить запрос, чтобы он возвращал записи с 0 в качестве значения и отображал имя категории как «Сирота»?

1 Ответ

5 голосов
/ 01 сентября 2010
SELECT ...
       ISNULL(tblProductCats.catName,'Orphan') AS  catName   ,
/*
Or possibly...
       CASE
              WHEN tblProducts.categoryID = 0
              THEN 'Orphan'
              ELSE tblProductCats.catName
       END AS catName
       */
       ...
FROM   tblProducts
       LEFT OUTER JOIN tblProductCats
       ON     tblProducts.categoryID = tblProductCats.ID
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...