SQL, объединяющий две разные таблицы - PullRequest
0 голосов
/ 28 мая 2019

(PS Я все еще изучаю SQL, и вы можете считать меня новичком)

У меня есть 2 примера таблиц следующим образом:

Таблица 1

|Profile_ID|  |Img_Path|

Таблица 2

|Profile_ID|  |UName|   |Default_Title|

По моему сценарию из 2-й таблицы мне нужно получить все записи, которые содержат определенное слово, для которого у меня есть следующий запрос:

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 запись из 2-й таблицы, мне нужно извлечь запись из 1-й таблицы на основе Profile_Id.

Итак, мне нужно вернуть следующие 2приводит к единственному утверждению:

|Profile_Id|   |Img_Path|

|Profile_Id|   |UName|

И мне нужно возвращать результаты в столбцах рядом друг с другом, например:

|Profile_Id|   |Img_Path|   |UName|

(Обратите внимание, мне пришлось объединить2 Profile_Id столбцов в один, поскольку они оба содержат одни и те же данные)

Я все еще изучаю SQL, и я изучаю Union, Join и т. Д., Но я немного смущенкоторый wможно идти.

Ответы [ 2 ]

1 голос
/ 28 мая 2019

Вы можете использовать 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
0 голосов
/ 28 мая 2019
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'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...