Doubt with query in MYSQL

1

I will try to explain my doubt in a simple way since it is something complex.

I have a table called formacion with the fields ID , Tipo , Categoría and SubCategoria

A table called alumnos with the fields NIA and apellidos_nombre .

A table called alumnos_formacion with the fields NIA e idFormacion . Here I keep the child of the student and their training id you have. NIA foreign key to NIA of table alumnos e idFormacion foreign key to idFormacion of table formacion

Example:

NIA:1234  IdFormacion:1 

NIA:1234  IdFormacion:3 

NIA:1234  IdFormacion:4

Finally I have a table called Ofertas with a series of fields between what interests me are:

requisito1 , requisito2 , requisito3 , requisito4 , requisito5 , requisito6 , requisito7 , requisito8

These fields contain foreign keys to the id in the table formacion

What I am trying to do is a query SQL that brings me the name of the students whose training matches at least one requirement of the offer, the one that meets the most requirements will appear first.

I give an example:

Alumno 1 with NIA: 1234 have the formations: id1 , id2 , id3

Alumno 2 with NIA: 4321 have the formations: id3 , id4 , id5

The offer requests the training: id1 , id4 , id5

In this case the name of the Alumno2 should appear first and the Alumno1 second.

I've done this query SQL but I think it has nothing to do:

SELECT DISTINCT apellidos_nombre FROM alumnos 
    INNER JOIN alumnos_formacion
        ON alumnos.nia = alumnos_formacion.nia 
    INNER JOIN ofertas
        ON alumnos_formacion.idFormacion = ofertas.requisito1 OR ofertas.requisito2 OR ofertas.requisito3 OR ofertas.requisito4 OR ofertas.requisito5 OR ofertas.requisito6 OR ofertas.requisito7 OR ofertas.requisito8
WHERE idOferta = 1
    
asked by Mario Guiber 10.06.2018 в 19:28
source

0 answers