Соответствующие строки из разных таблиц - MySQL - PullRequest
0 голосов
/ 08 июля 2020

У меня есть эти таблицы со следующими столбцами:

  • Таблицы

    • sanit, sanit2
  • Столбцы

    • sube, id_pes, одобрен

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

select sube, id_pes, approved from sanit 
    where  sube in (select sube from sanit2) and 
           id_pes in (select id_pes from sanit2) and 
           approved in (select approved from sanit2);

Как только я узнаю все строки, которые появляются в обеих таблицах, я создам новую таблицу, используя эти строки.

Ответы [ 2 ]

0 голосов
/ 08 июля 2020
SELECT sube, id_pes, approved
FROM sanit 
WHERE EXISTS ( SELECT NULL
               FROM sanit2
               WHERE sanit.sube <=> sanit2.sube
                 AND sanit.id_pes <=> sanit2.id_pes
                 AND sanit.approved <=> sanit2.approved );

Этот запрос вернет все совпавшие строки, даже если некоторые столбцы имеют значение NULL.

0 голосов
/ 08 июля 2020

Думаю, вам нужен один подзапрос. В MySQL вы можете использовать in:

select sube, id_pes, approved
from sanit 
where (sube, id_pes, approved) in (select sube, id_pes, approved from sanit2);

Обратите внимание, что значения NULL не пройдут сравнение.

...