技術的には、これは動的SQLでのみ実行できます。つまり、MySQLのプリペアドステートメント構文 、または文字列連結を使用して、データベースに送信する前にクエリを作成します。 SQLインジェクションの防御が優れているため、プリペアドステートメントが推奨されます。
さまざまなテーブルにLEFTJOINを使用できますが、カテゴリが一致しない場合はnullになる、各テーブル(武器、盾、剣など)の多数の列を含めることを意味します。単一のクエリからデータを引き出そうとするのは恐ろしいことです...
PS:なぜSWORD
があるのですか テーブル? WEAPON
ではカバーされません テーブル?