Выберите все записи в MySQL, если запись не существует в другой таблице - PullRequest
0 голосов
/ 03 декабря 2018

У меня есть две таблицы MySQL.Один называется match_rail и match_complete.

При действии bill_number из match_rail запись перемещается в таблицу match_complete и больше не должна отображаться в таблице match_rail.

Таблица match_rail обновляется ежечасно,Поэтому я должен убедиться, что не отображать тот же bill_number, если он уже существует в таблице match_complete.

Вот запрос:

 SELECT
   mr.RAMP
   mr.ETA
   mr.BILL_NUMBER
   // few more columns
 FROM
   matchback_rail mr
 JOIN
   matchback_complete mc ON mr.BILL_NUMBER = mc.BILL_NUMBER

Приведенный выше запрос дает мне0 записей.Он должен дать мне все записи, кроме тех, которые существуют в обеих таблицах.

Не уверен, стоит ли мне использовать JOIN или LEFT JOIN.

Ответы [ 2 ]

0 голосов
/ 03 декабря 2018

Попробуйте этот запрос:

SELECT
     mr.RAMP
     mr.ETA
     mr.BILL_NUMBER
     // few more columns
FROM
     matchback_rail mr
WHERE NOT EXISTS(SELECT 1 FROM matchback_complete
                 WHERE BILL_NUMBER = mr.BILL_NUMBER)
0 голосов
/ 03 декабря 2018

Вы хотите использовать LEFT JOIN, это дает все записи в mr, даже если ничего не присоединено.Затем используйте WHERE, чтобы отфильтровать те, которые вам не нужны.

SELECT
   mr.RAMP
   mr.ETA
   mr.BILL_NUMBER
   // few more columns
 FROM
   matchback_rail mr
 LEFT JOIN
   matchback_complete mc ON mr.BILL_NUMBER = mc.BILL_NUMBER
 WHERE mc.BILL_NUMBER IS NULL
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...