Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Dynamischer MySQL-JOIN

Technisch gesehen können Sie dies nur mit dynamischem SQL tun - was bedeutet Vorbereitete Anweisungssyntax von MySQL , oder Zeichenfolgenverkettung, um die Abfrage zu erstellen, bevor sie an die Datenbank gesendet wird. Vorbereitete Anweisungen sind aufgrund des besseren Schutzes vor SQL-Einschleusungen die bevorzugte Wahl.

Sie könnten LEFT JOINs zu den verschiedenen Tabellen verwenden, aber es würde bedeuten, zahlreiche Spalten aus jeder der Tabellen (Waffen, Schilde, Schwerter ...) einzuschließen, die null wären, wenn die Kategorie nicht übereinstimmt. Es wäre schrecklich, zu versuchen, Daten aus einer einzigen Abfrage herauszuziehen...

PS:Warum gibt es ein SWORD Tisch? Wäre das nicht durch den WEAPON abgedeckt Tabelle?