Technicznie rzecz biorąc, możesz to zrobić tylko za pomocą dynamicznego SQL - co oznacza Składnia przygotowanej instrukcji MySQL lub konkatenację ciągów w celu utworzenia zapytania przed przesłaniem go do bazy danych. Przygotowane instrukcje są preferowanym wyborem ze względu na lepszą ochronę przed wstrzyknięciem SQL.
Mógłbyś użyć LEFT JOIN do różnych tabel, ale oznaczałoby to uwzględnienie wielu kolumn z każdej tabeli (broni, tarcz, mieczy...), które byłyby puste, gdyby kategoria nie pasowała. Byłoby okropne próbować wyciągnąć dane z jednego zapytania...
PS:Dlaczego jest SWORD
stół? Czy nie byłoby to objęte WEAPON
? stół?