sql - SQL:如何连接具有 TRUE/FALSE 值的 2 个表?[PostgreSQL]
问题描述
我有 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
解决方案
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
推荐阅读
- unity3d - 在运行时问题中在 Unity 中设置材料
- arrays - Perl:如何从没有空格的数组中删除元素
- python - 我不能在数组旋转的末尾插入临时元素
- python - 我可以将文件更改为文件夹吗
- reactjs - 使用后更新道具
- python - 将 Imagehash 存储在 mysql 数据库中
- python - 索引中的 NumPy 布尔数组
- reactjs - 对象 ID 的猫鼬数组仅包含最后插入的值
- google-apps-script - 谷歌表格正在寻找像 VLOOKUP 这样的谷歌脚本,但会结合找到的值并将它们加入特定的单元格
- vba - 无法在 VBA 循环中的 Excel 电子表格中插入单行