选择具有多个条件的多个列
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了选择具有多个条件的多个列相关的知识,希望对你有一定的参考价值。
我在选择两列时遇到一些麻烦,每列都有不同的条件
第一桌(主)
id_main |Title
---------------
1 |Title1
2 |Title2
第二张桌子(人)
id_psn | id_main | Name | status
-------------------------------
1 | 1 | Tedy | 1
2 | 1 | john | 2
3 | 2 | lisa | 1
4 | 2 | khan | 2
第二个表的id_main是外键表单第一个主键。我想要一个选择查询来生成2列(person1和person2)person1包含name其中status为1,person2为2.它应该生成这样的表
id_main | title | person1 | person2
------------------------------------
1 | title1 | Tedy | john
2 | titl2 | Lisa | khan
香港专业教育学院尝试了这样的查询
SELECT main.id_main ,main.title,
(SELECT person.name where person.status = 1) as 'person1',
(SELECT bap.nama where person.status= 2) as 'person2'
FROM main
JOIN person on main.id_main = person.id_main
并不像我想要的那样工作。它产生这样的
id_main | title | Person1 | person2
-----------------------------------
1 | title1 | Tedy | NULL
1 | title1 | NULL | john
2 | title2 | Lisa | NULL
2 | title2 | NULL | khan
希望有人能解决这个问题
答案
SELECT a.id_main,
b.Title AS title,
MAX( CASE WHEN a.status = 1 THEN a.Name ELSE NULL END ) AS person1,
MAX( CASE WHEN a.status = 2 THEN a.Name ELSE NULL END ) AS person2
FROM person a
INNER JOIN
main b
ON a.id_main = b.id_main
GROUP BY a.id_main,b.Title;
以上是关于选择具有多个条件的多个列的主要内容,如果未能解决你的问题,请参考以下文章