sql - 如何在 SQL 中查询多条链接记录以返回一行
问题描述
我有两个这样的表:
Product table Identity table
Product | Role | id id | Flag
--------+-------+---- ---+-----
A | Phone | 1 1 | Y
A | iPad | 2 2 | Y
A | PC | 3 3 | N
我想以得到以下结果的方式查询此表(标志为 Y 的所有产品):
Product | Role1 | Role2
--------+--------+-------------
A | Phone | iPad
请建议如何做到这一点。
解决方案
像这样:
SELECT Product,
MAX(CASE WHEN Role='Phone' THEN value END) as Role1,
MAX(CASE WHEN Role='IPad' THEN value END) as Role2,
MAX(CASE WHEN Role='PC' THEN value END) as Role3
FROM Product
JOIN Identity ON Product.Id = Identity.Id AND Identity.Flag = 'Y'
GROUP BY Product
您可以根据需要向选择列表添加任意数量的角色
推荐阅读
- c - 如何优化 omp pragma 以在并行区域之间运行代码?
- asp.net - 带有标识的 ASP.NET WebForms
- python - Django:未提供身份验证凭据
- java - 在 Eclipse 中,在 Tomcat 项目上运行 Java EE Web 服务器“Servlet”尝试部署无关目录
- c++ - 如何在 C++ 中通过 i2c 在 Raspberry Pi 上将 MLX90640 热像仪图像数据导入 OpenCV?
- reactjs - 如何在 React 构造函数中使用 Jest / Enzyme 模拟文档对象?
- javascript - 专用服务器、SyntaxError、Discord Bot javascript
- excel - 使用循环从动态范围复制并使用循环粘贴到动态范围
- xpath - 带有 XPath 运算符的 XPath
- java - 使用 java 8 IntStream 进行沙漏求和