Mysql Join Две таблицы на клавишах

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

SELECT *
FROM education AS a
JOIN keys2 AS b USING(`List Idsubjek`)
WHERE `List Idsubjek` IN (52, 54, 55, 67)
AND `studentid` = '$id'

Таблица keys2 выглядит так:

id List Idsubjek  Subject
1  52             Maths
2  53             Geography

Таблица образования выглядит так:

id List Idsubjek       studentid school
1  52,53,54,74,0,0,0   15        school name

В настоящее время у меня есть только одна строка с дополнительным столбцом «subject», но она только первая. Математика.

Любая помощь будет оценена по достоинству.

mysql,

0

Ответов: 1


1

Прежде всего, вы должны нормализовать свою структуру данных и иметь таблицу соединений между ключами2 и таблицей образования.

Чтобы заставить соединение работать с текущей структурой данных, используйте функцию find_in_set () mysql :

SELECT *
FROM education AS a
JOIN keys2 AS b on find_in_set(b.`List Idsubjek`,a.`List Idsubjek`)>0 
WHERE b.`List Idsubjek` IN (52, 54, 55, 67)
AND `studentid` = '$id'
MySQL,
Похожие вопросы
Яндекс.Метрика