我试图得到一个具体的结果,但到目前为止,我的try 给出了一个不想要的结果或一个错误.
SELECT u.Id
,(SELECT c.Content FROM Contents c WHERE c.Month = '01' AND u.Id = c.Id) 'Month_1_Content'
,(SELECT c.Content FROM Contents c WHERE c.Month = '02' AND u.Id = c.Id) 'Month_2_Content'
,(SELECT c.Content FROM Contents c WHERE c.Month = '03' AND u.Id = c.Id) 'Month_3_Content'
FROM Users u;
给出错误
子查询返回多个值.当子查询跟随在=、!=、<;、<;=、>;、>;=之后,或子查询用作表达式时,不允许这样做.
我也试
SELECT u.Id
,c.Content 'Month_1_Content'
,d.Content 'Month_2_Content'
,e.Content 'Month_3_Content'
FROM Users u
LEFT OUTER JOIN Content c
ON c.Month = '01' AND u.Id= c.Id
LEFT OUTER JOIN Content d
ON d.Month = '02' AND u.Id= d.Id
LEFT OUTER JOIN Content e
ON e.Month = '03' AND u.Id= e.Id
但此查询不会返回目标结果.
Query Result that I want to get个
-------------------------------------------------------------
Id | Month_1_Content | Month_2_Content | Month_3_Content
-------------------------------------------------------------
scott | 01_scott_1 | 02_scott_1 |
scott | 01_scott_2 | |
tiger | | 02_tiger_1 | 03_tiger_1
tiger | | 02_tiger_2 | 03_tiger_2
tiger | | | 03_tiger_3
cat | | |
-------------------------------------------------------------
样本数据
Table Users
Users
-----
Id
-----
scott
tiger
cat
-----
Table Contents个
Contents
--------------------------------------
Month | Id | Sequence | Content
--------------------------------------
01 | scott | 1 | 01_scott_1
01 | scott | 2 | 01_scott_2
02 | scott | 1 | 02_scott_1
02 | tiger | 1 | 02_tiger_1
02 | tiger | 2 | 02_tiger_2
03 | tiger | 1 | 03_tiger_1
03 | tiger | 2 | 03_tiger_2
03 | tiger | 3 | 03_tiger_3
--------------------------------------