I have 2 tables structured like this:
People
----------
>ID, Name, Surname
Projects
----------
>ID, Assistant#1, Assistant#2, Assistant#3, Assistant#4,
> Assistant#5, Assistant#6, Assistant#7, Assistant#8, Assistant#9,
> Assistant#10, lot of other columns..... (every assistant column
> contains an integer, the people ID)
Now, I want to query my DB and get a single row from Project table (let’s suppose row with ID=3) containing all columns of project table and in particular have each assistant replaced with it’s correct name and surname.
I’ve managed to do this (with a lot of joins), but with my little sql experience my code looks very bulky and i’m sure that there’s a better way to do this.
Thanks in advance.
Because you set a number of (possible) assistants at 10, that dictates that you are going to have to write code to accomodate those 10 assistants. This can be done a few ways: (have not tested)
otherwise you could do some trickery with
If possible, it might be best to re-structure your datatables, and have a single assistant mapped to a single projectID:
Therefore, you could do just one inner join and you will return a row for each assistant: