Bedingte Verknüpfungen in MySQL
Beim Umgang mit Tabellen, die einen Aufzählungswert enthalten, der den Tabellennamen einer anderen Tabelle darstellt, ist eine Durchführung erforderlich ein Join basierend auf dem Typwert. Dies stellt in MySQL eine einzigartige Herausforderung dar, da es keine dynamischen Joins unterstützt.
Eine Problemumgehung kann jedoch mithilfe von Case-Ausdrücken und mehreren Joins erreicht werden.
Ein einfaches Beispiel wäre eine Tabelle mit den Spalten id1, id2 und type. Die Typspalte enthält den Namen einer anderen Tabelle. Um die Typtabelle basierend auf dem Wert des Typs zu verknüpfen, könnte man den folgenden Ansatz verwenden:
SELECT
t.id,
t.type,
t2 .id AS id2,
t3.id AS id3
FROM
t
LEFT JOIN
t2 ON t2.id = t.id AND t.type = ' t2'
LINKS JOIN
t3 ON t3.id = t.id AND t.type = 't3'
Diese Abfrage führt eine Linksverknüpfung für die Tabellen t2 und t3 basierend auf dem Wert von Typ durch. Wenn der Typwert mit t2 übereinstimmt, wird die ID-Spalte von t2 als id2 zurückgegeben. Wenn der Typwert ebenfalls mit t3 übereinstimmt, wird die ID-Spalte von t3 als id3 zurückgegeben.
Diese Methode ist zwar nicht so elegant wie ein dynamischer Join, ermöglicht aber bedingte Joins basierend auf aufgezählten Tabellennamen in MySQL.
Das obige ist der detaillierte Inhalt vonWie kann ich bedingte Verknüpfungen basierend auf aufgezählten Tabellennamen in MySQL durchführen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!