SQL-запрос для соединения трех таблиц с условием - PullRequest
0 голосов
/ 05 мая 2018

У меня есть три таблицы: транспортное средство, адресная роль, адрес. У меня две задачи,

  1. Мне нужно найти количество записей из таблицы ролей адресов на основе одного из столбцов даты в таблице транспортных средств. Я могу получить ожидаемый результат, используя внутреннее соединение между транспортным средством и таблицей адресов.

  2. На основании приведенных выше результатов я должен найти записи из таблицы адресных таблиц, которые отсутствуют в таблице адресов. Это запрос, который я использую:

SELECT addressrole.*,
       address.*
FROM addressrole
  LEFT JOIN address ON addressrole.ID = address.FK_ADDRESSROLE_ID
  INNER JOIN vehicle
          ON vehicle.ID = addressrole.FK_EVN_ID
         AND creationdate > '2018-03-01'

Приведенный выше запрос возвращает все записи из таблиц адресов и адресов на основе внутреннего соединения из таблицы транспортных средств и адресов.

Есть ли способ получить только несопоставленные записи из таблицы адресов, основанные на следующем внутреннем соединении?

1 Ответ

0 голосов
/ 05 мая 2018

Это то, что вы хотите?

SELECT ar.*, a.*
FROM addressrole ar INNER JOIN
     vehicle v
     ON vehicle.ID = ar.FK_EVN_ID AND
        ?.creationdate > '2018-03-01' LEFT JOIN
     address a
     ON ar.ID = a.FK_ADDRESSROLE_ID 
WHERE a.FK_ADDRESSROLE_ID IS NULL;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...