SQL выберите, где один параметр равен другому в другой таблице - PullRequest
0 голосов
/ 12 февраля 2020

Я очень новичок в соединениях таблиц SQL и мне нужна помощь.

У меня есть две таблицы, нет. один выглядит так (назовем это TableA):

    Fogado_felh_id   Kuldo_felh_id
    -------------------------------
    35               33
    35               38
    35               NULL
    35               39

А другой выглядит так (и назовем этот TableB):

    id               Login_name
    ---------------------------------------
    33               somebody@emailhere.com
    38               SomeUserName

Я хотел бы присоединиться к этим таблицам поэтому я получаю имена входа на основе 'Kuldo_felh_id', а также сохраняю все содержимое TableA.

Итак, я написал SQL команду запроса:

SELECT 
    a.*, b.login_nev 
FROM
    TableA a, TableB b 
WHERE
    fogado_felh_id = 35 
    AND b.id = a.kuldo_felh_id;

Она возвращает это:

    Fogado_felh_id   Kuldo_felh_id   Login_name
    -----------------------------------------------------------
    35               33              somebody@emailhere.com
    35               38              SomeUserName

Проблема в том, что эта команда не возвращает строки, в которых kuldo_felh_id имеет значение null или id не существует в TableB. Как я могу вернуть содержимое tableA, если оно не существует в TableB?

Это вывод, который я хотел бы увидеть:

    Fogado_felh_id   Kuldo_felh_id   Login_name
    --------------------------------------------------------
    35               33              somebody@emailhere.com
    35               38              SomeUserName
    35               NULL            NULL //Because it does not exist the login_name should be null
    35               39              NULL //Because it does not exist the login_name should be null

1 Ответ

2 голосов
/ 12 февраля 2020

Это должно получить то, что вы ищете. Обратите внимание на синтаксис LEFT JOIN. Включите ключевое слово ON, чтобы указать, что объединяет 2 таблицы. Как только вы начнете создавать псевдонимы, создайте псевдоним для всех столбцов запроса.

SELECT a.*, b.login_nev 
from TableA a
LEFT JOIN TableB b ON b.id = a.kuldo_felh_id
where a.fogado_felh_id = 35 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...