从表,位值和ID中检索多个值

时间:2015-07-20 08:38:46

标签: sql sql-server

我想检索与特定ID相关的所有数据,以及同一个表中位值为1的所有数据。

这是表格数据:

Description
--------------------- 
INT        DID
INT        DescID             
VARCH      DescTitle
VARCH      DescText
BIT        ForAll

Description_Join
---------------------
INT        DJID
INT        DescID
INT        ProductID

这些表由DescID连接。所以现在我想用特定的ProductID(来自request.querystring)显示所有数据,我还想显示表中的所有数据"描述"该领域" ForAll" BIT值为1。

我无法让它发挥作用。

这是我试过的Sql

SELECT D.DescID, DJ.DescID, DJ.ProductID, D.ForAll, D.DescTitle, D.DescText 
FROM Brand_Variant_Description D
INNER JOIN Description_Join DJ ON (D.DescID = DJ.DescID)
WHERE DJ.ProductID=222 AND D.BrandDescAllSel=1

2 个答案:

答案 0 :(得分:1)

我假设您需要所有匹配特定产品的数据以及位值为1的数据,即使它具有不同的产量。如果这是你需要的,那么在你的查询中将内连接更改为左连接,并将最终AND替换为OR,如此

SELECT D.DescID, DJ.DescID, DJ.ProductID, D.ForAll, D.DescTitle, D.DescText 
FROM Brand_Variant_Description D
LEFT JOIN Description_Join DJ ON (D.DescID = DJ.DescID)
WHERE DJ.ProductID=222 OR D.BrandDescAllSel=1

答案 1 :(得分:0)

尝试此查询

SELECT D.DescID
    ,DJ.DescID
    ,DJ.ProductID
    ,D.ForAll
    ,D.DescTitle
    ,D.DescText
FROM Brand_Variant_Description D
LEFT JOIN Description_Join DJ ON (D.DescID = DJ.DescID)
    AND (D.ForAll = 1)
WHERE DJ.ProductID = 222
    AND D.BrandDescAllSel = 1