【问题标题】:SQL: How to join 2 tables with have TRUE/FALSE value ? [PostgreSQL]SQL:如何连接具有 TRUE/FALSE 值的 2 个表? [PostgreSQL]
【发布时间】:2020-05-23 12:33:26
【问题描述】:

我有 3 张桌子

tblProduts(productID, productName)
(1, "Product1")(2, "Product2") 

tblProductHasAttributes(productID, attributeID)
(1,1)(1,2)(2,1)(2,3)

tblAttributes(attributeID, attributeName)
(1, "Size")(2, "Weight")(3,"Color")

我需要带有列(attributeID、attributeName、Checked)的所有属性列表的结果,以及与表 tblProductHasAttributes 中的一个特定产品(ProductID=someValue)相关的那些属性应该在列 Checked 值 TRUE/FALSE 中具有。

期望 ProductID=1 的结果

attributeID,attributeName,Checked
     1     ,   Size      , True
     2     ,   Weight    , True
     3     ,   Color     , False

【问题讨论】:

    标签: sql postgresql


    【解决方案1】:
    select a.attributeID, a.attributeName,
           case when max(productID) is not null 
                then TRUE 
                else FALSE 
           end as checked
    from tblAttributes a 
    left join tblProductHasAttributes a on a.attributeID = p.attributeID
                                       and p.ProductID = 1
    group by a.attributeID
    

    【讨论】:

      猜你喜欢
      • 2016-01-27
      • 1970-01-01
      • 2021-03-26
      • 1970-01-01
      • 2019-01-14
      • 2020-06-23
      • 1970-01-01
      • 2012-03-11
      • 1970-01-01
      相关资源
      最近更新 更多