(P.S.我还在学习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
等,但我有点困惑该走哪条路。
您可以使用
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
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'