合并两个不同表的SQL

时间:2019-05-28 10:38:38

标签: sql sql-server

(请注意,我仍在学习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,并且正在学习UnionJoin等。但是,我对于选择哪种方法感到有些困惑。

2 个答案:

答案 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'