Я не уверен, что это за терминология, но у меня есть запрос mysql
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';
Однако есть 2 переменные, которые меняются, и мне нужно показать все это в одной таблице.
Эти две переменные
WHERE character_skills.active_skill_level <5 AND skill_id = 12203
Например
Мне нужно увидеть, является ли значение active_skill_level is < 5 для skill_id 12203, НО нужно также проверить, если active_skill_level < 4 для skill_id 12204, и мне нужно, чтобы они отображались в той же таблице...
Может ли кто-нибудь помочь мне немного? Очень признателен.






Используйте 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'
Альтернативой союзу 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 )
OR ( character_skills.active_skill_level <4
AND skill_id = 12204 )
AND name = 'Mokey PYD';
это также может оптимизировать немного хуже, чем подход
UNION ALL, в зависимости от индексов таблицы, все еще +1, поскольку ответ действителен. Я знаю, что оптимизатор базы данных Oracle будет оптимизировать и обрабатыватьORкакUNION ALLв большинстве случаев, особенно если задействованы индексы... Как MySQL принадлежит корпорации Oracle, я надеюсь, что MySQL также получит эту оптимизацию в будущем.