Techniquement, vous ne pouvez le faire qu'avec SQL dynamique - ce qui signifie Syntaxe de l'instruction préparée de MySQL , ou concaténation de chaînes pour créer la requête avant de la soumettre à la base de données. Les instructions préparées sont le choix préférable, en raison d'une meilleure défense contre les injections SQL.
Vous pouvez utiliser des LEFT JOIN pour les différentes tables, mais cela signifierait inclure de nombreuses colonnes de chacune des tables (armes, boucliers, épées...) qui seraient nulles si la catégorie ne correspondait pas. Ce serait horrible d'essayer d'extraire des données d'une seule requête...
PS :Pourquoi y a-t-il un SWORD
table? Cela ne serait-il pas couvert par l'WEAPON
tableau ?