Search code examples
mysqlselectinner-join

Multiple SQL Queries with INNER JOIN different parameters?


I'm not sure what the terminology is for this but I have a mysql query

SELECT name, invTypes.typeName, character_skills.trained_skill_level FROM character_skills INNER JOIN character_infos ON character_infos.character_id = character_skills.character_id INNER JOIN invTypes ON character_skills.skill_id = invTypes.typeID WHERE character_skills.active_skill_level <5 AND skill_id = 12203 AND name = 'Mokey PYD';

However, there are 2 variables that change and I need to show all of this on a single table.

Those two variables are

WHERE character_skills.active_skill_level <5 AND skill_id = 12203

For instance

I need to see if the value of active_skill_level is < 5 for skill_id 12203 BUT need to also check if active_skill_level < 4 for skill_id 12204 and I need these to show on the same table...

Can someone help me out a little bit? Much Appreciated.


Solution

  • Use UNION ALL

    SELECT name, invTypes.typeName, character_skills.trained_skill_level 
    FROM character_skills INNER JOIN character_infos ON character_infos.character_id = character_skills.character_id 
    INNER JOIN invTypes ON character_skills.skill_id = invTypes.typeID 
    WHERE character_skills.active_skill_level <5 AND skill_id = 12203 AND name = 'Mokey PYD'
    union all
    SELECT name, invTypes.typeName, character_skills.trained_skill_level 
    FROM character_skills INNER JOIN character_infos ON character_infos.character_id = character_skills.character_id 
    INNER JOIN invTypes ON character_skills.skill_id = invTypes.typeID 
    WHERE character_skills.active_skill_level <4 AND skill_id = 12204 AND name = 'Mokey PYD'