Как выполнить INNER JOIN с 3 таблицами с использованием MySQL?


у меня есть сомнение с запросом INNER JOIN, в моей базе данных у меня есть 3 таблицы, которые выглядят следующим образом: introducir la descripción de la imagen aquí

его структура выглядит следующим образом таблица уровня образования Быть относится к таблице стипендиат и таблица стипендиат относится к таблице оценки. Проблема в том, что при желании получить информацию из трех таблиц с помощью 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
Author: Ivan18, 2018-10-18

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 над оценками и уровнем образования над стипендиатами и оценками, и поэтому вы можете сделать это последовательно с большим количеством таблиц.

Надеюсь, это полезно для вас.

 3
Author: Mauricio Javier Biott, 2018-10-18 18:37:02

Когда вы делаете 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, вы можете нажать здесь

 0
Author: Fran Islas, 2018-10-18 18:00:19