SQL Combine 2 таблицы без первичного ключа - PullRequest
0 голосов
/ 09 сентября 2018

Я только начал изучать SQL, и я пытаюсь понять, как я могу сделать следующее в SQL.

У меня есть 2 таблицы: Пример - TableA (Id), TableB (Id, Text)

Following are the values in Table A:
1
2
1

Ниже приведены значения в таблице B (Примечание. Текстовый столбец всегда будет иметь аналогичное значение с идентификатором, который у него есть):

1, Tom
2, John
1, Tom
3, Doe

Я попытался выполнить следующий запрос: «Выберите TableB.Text из TableB, TableA, где TableA.Id = TableB.Id»

И вернулось:

Tom
Tom
John
Tom
Tom

Где я ищу:

Tom
John
Tom

Может ли кто-нибудь указать мне правильное направление, если это возможно в SQL?

1 Ответ

0 голосов
/ 09 сентября 2018

Вместо непосредственного присоединения к tableb вы можете сначала «выделить» его в подзапросе.

SELECT b.text
       FROM (SELECT DISTINCT
                    id,
                    text
                    FROM tableb) b
            INNER JOIN tablea a
                       ON a.id = b.id;

Отличная версия tableb выглядит следующим образом:

id   text
---------
1    Tom
2    John
3    Doe

Второй 'Tom' ушел. Например, больше нет двух строк, соответствующих идентификатору 1, в результате чего 'Tom' s будет два раза в результате вашего исходного запроса для каждой строки с идентификатором 1 из tablea.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...