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

У меня есть база данных с 2 таблицами: Таблица 1 — это записи (идентификатор пользователя, номер 1, номер 2, номер 3, номер 4, номер 5, номер 6) Таблица 2 — результат (номер 1, номер 2, номер 3, номер 4, номер 5, номер 6).

Таблица Entries содержит 6 чисел, угадываемых для каждого идентификатора пользователя, и уже содержит около 1200 строк. Таблица результатов хранит 6 чисел и имеет только одну строку.

Проблема сейчас в следующем:

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

Например, если Результаты были 1,2,3,4,5,6, а пользователь А угадал 1,3,5,7,9,11, то правильное количество догадок для пользователя А равно 3. Если пользователь Б угадал 2, 8,11,12,13,24, то правильное количество догадок для пользователя B равно 1. Если пользователь C угадывает 23,24,25,26,27,28, то правильное количество догадок для пользователя C равно 0.

Поэтому мой отчет должен содержать 1200 строк с 2 столбцами (userID и Correct_Number_of_Guesses).

Каков наилучший подход к этой проблеме?


person user1163512    schedule 22.01.2012    source источник


Ответы (1)


С синтаксисом MySQL IF:

SELECT 
     userID,
      if( t1.number1 = t2.number1, 1, 0 )+
      if( t1.number2 = t2.number2, 1, 0 )+
      if( t1.number3 = t2.number3, 1, 0 )+
      if( t1.number4 = t2.number4, 1, 0 )+
      if( t1.number5 = t2.number5, 1, 0 )+
      if( t1.number6 = t2.number6, 1, 0 ) 
     as Correct_Number_of_Guesses
  FROM 
     Table1 t1
       cross join 
     Table2 t2
person dani herrera    schedule 22.01.2012