Считать несоответствие между 2 строками из 2 разных таблиц - MySQL

0

У меня есть база данных с двумя таблицами. table1 и table2.

Таблица 1 содержит список тестов (столбец " имя "). И я хочу подсчитать, сколько строк отсутствует в таблице2 (эта таблица также имеет имя столбца) в соответствии с перечнем тестов таблицы1. Поэтому я просто хочу подсчитать несоответствие между table1.name и table2.name.

Я попробовал несколько запросов, но все они действительно не работали. Я попытался использовать инструкцию " NOT IN ", но это занимает слишком много времени. Как несколько минут.

Например, выход должен быть:

COUNT (*) = 20

Это означает, что 20 тестов отсутствуют (или еще не сделано) в table2.

Я использую MySQL, поэтому я не могу использовать инструкцию EXCEPT или MINUS.

Благодарю вас заранее.

Нордин

  • 0
    stackoverflow.com/help/mcve
  • 0
    Вы можете проверить мои ответы, надеюсь, это решит вашу проблему
Теги:
database

3 ответа

0
Лучший ответ

Попробуйте выполнить следующий запрос:

select count(case when bname is null then 1 end)
from
(
select a.name as aname, b.name as bname from 
table1 a left join table2 b
on a.name=b.name)x
  • 0
    Я пытаюсь, но это не работает. Что я должен написать вместо а и б? Я поменял table1 и table2 с именами таблиц. имя уже мои имена столбцов. Но как насчет а и б, пожалуйста?
  • 0
    изменил запрос, a и b просто псевдоним таблицы
Показать ещё 8 комментариев
1

Вы можете использовать его not exists:

select count(*)
from table1 t1
where not exists (select 1 from table2 t2 where t2.name = t1.name);

Если у вас есть дублирующее name в table1 тогда вам нужно count(distinct t1.name).

  • 0
    Я пробовал, но мне нравится оператор NOT IN, когда я его использую, БД зависает и занимает много минут, чтобы выполнить запрос.
0

MINUS может использоваться в MySQL. Ссылка: http://www.mysqltutorial.org/mysql-minus/

Попробуй это:

SELECT name
FROM table1
MINUS
SELECT name
FROM table2
  • 0
    Я пытался, но это не работает. Возникла проблема с оператором MINUS. Я использую MySQL с WAMP и phpMyAdmin.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню