使用外部表值从同一表进行sql查询

mpgws1up  于 2021-07-24  发布在  Java
关注(0)|答案(1)|浏览(362)

我正在使用sql server 2012。我在sql server数据库的同一个表中有数据,需要将这些数据放入多个列中。
我有两张table, tblIVContent :

以及 TBLIVTextData :

为了让一张唱片出现在 TBLIVTextData ,当数据在我们的ui中创建时,它会在模块上创建一个content\u id等于84。
我需要自动找到 TBLIVContent 它的module\u id为84,将显示在对其进行查询的查询中 tblIVTextData 我需要的列是firstname,它的字段\ id总是531,lastname的字段\ id总是543,依此类推。
结束状态我需要以下输出

FirstName     |      LastName.    |       JobTitle    |

记录1如下:
firstname等于content\u id为263229,field\u id为531
lastname等于content\u id为263229,field\u id为543
jobtitle等于content\u id为263229,field\u id为544
我都不知道该怎么做。我不觉得加入是正确的方式?有人能带我走正确的路吗?
我不一定想要答案(试着在这里学习),但什么是正确的方式开始这一点?谷歌回报了很多,但我不确定这是我需要的。

jaql4c8m

jaql4c8m1#

使用条件聚合:

select
    content_id,
    max(case when d.field_id = 531 then field_value end) firstName,
    max(case when d.field_id = 543 then field_value end) lastName,
    max(case when d.field_id = 544 then field_value end) jobTitle
from TBLIVTextData d
inner join tblIVContent c on c.content_id = d.content_id
where c.module_id = 84
group by content_id

相关问题