(请注意,我仍在学习SQL,可以认为我是新手)
我有2个示例表,如下所示:
表1
|Profile_ID| |Img_Path|
表2
|Profile_ID| |UName| |Default_Title|
我的情况是,从第二张表中,我需要获取所有包含 某个单词的记录,对此我有以下查询:
Select Profile_Id,UName from
Table2 Where
Contains(Default_Title, 'Test')
ORDER BY Profile_Id
OFFSET 5 ROWS
FETCH NEXT 20 ROWS ONLY
(请注意,由于需要我正在设置OFFSET
。)
现在,这种情况是,一旦我从第二张表中检索到1条记录,我就需要基于Profile_Id
从第一张表中提取记录。
因此,我需要在一个语句中返回以下2个结果:
|Profile_Id| |Img_Path|
|Profile_Id| |UName|
我需要在并排的列中返回结果,例如:
|Profile_Id| |Img_Path| |UName|
(请注意,我必须将2个Profile_Id
列合并为一个,因为它们都包含相同的数据)
我仍在学习SQL,并且正在学习Union
,Join
等。但是,我对于选择哪种方法感到有些困惑。
答案 0 :(得分:1)
您可以使用join
:
select t1.*, t2.UName
from table1 t1 join
(select Profile_Id, UName
from Table2
where Contains(Default_Title, 'Test')
order by Profile_Id
offset 5 rows fetch next 20 rows only
) t2
on t2.profile_id = t1.profile_id
答案 1 :(得分:-1)
SELECT a.Profile_Id, a.Img_Path, b.UName
FROM table1 a INNER JOIN table2 b ON a.Profile_Id=b.Profile_Id
WHERE b.Default_Title = 'Test'