Как выполнить INNER JOIN с 3 таблицами с использованием MySQL?
у меня есть сомнение с запросом INNER JOIN, в моей базе данных у меня есть 3 таблицы, которые выглядят следующим образом:
его структура выглядит следующим образом таблица уровня образования Быть относится к таблице стипендиат и таблица стипендиат относится к таблице оценки. Проблема в том, что при желании получить информацию из трех таблиц с помощью PHP она не возвращает мне никакого значения, код далее:
$sql_calificaciones = "SELECT becarios.*, nivel_educativo.nivel, calificaciones.calificacion
FROM calificaciones
INNER JOIN becarios
ON calificaciones.id_becario = becarios.id_becario
FROM becarios
INNER JOIN nivel_educativo
ON becarios.id_nivel = nivel_educativo.id_nivel";
$registros = obtenerRegistro($sql_calificaciones, $conecta);
if ($registros !== false)
{
echo var_dump($registros);
}
приветствия.
2 answers
Правильный способ выполнить JOIN будет выглядеть следующим образом:
SELECT becarios.*, nivel_educativo.nivel, calificaciones.calificacion FROM calificaciones INNER JOIN becarios ON calificaciones.id_becario = becarios.id_becario INNER JOIN nivel_educativo ON becarios.id_nivel = nivel_educativo.id_nivel
Inner join объединяются, стипендиаты делают join над оценками и уровнем образования над стипендиатами и оценками, и поэтому вы можете сделать это последовательно с большим количеством таблиц.
Надеюсь, это полезно для вас.
Когда вы делаете joins, вы просто должны поместить первый FROM. Второй был больше.
Попробуйте asi:
$sql_calificaciones = "SELECT becarios.*, nivel_educativo.nivel, calificaciones.calificacion
FROM calificaciones
INNER JOIN becarios
ON calificaciones.id_becario = becarios.id_becario
INNER JOIN nivel_educativo
ON becarios.id_nivel = nivel_educativo.id_nivel";
$registros = obtenerRegistro($sql_calificaciones, $conecta);
if ($registros !== false)
{
echo var_dump($registros);
}
Чтобы узнать, как правильно использовать joins, вы можете нажать здесь