Heim > Datenbank > MySQL-Tutorial > Wie rufe ich Standard- und zeichenspezifische Einstellungen mithilfe eines LEFT JOIN ab?

Wie rufe ich Standard- und zeichenspezifische Einstellungen mithilfe eines LEFT JOIN ab?

Susan Sarandon
Freigeben: 2025-01-22 07:47:08
Original
836 Leute haben es durchsucht

How to Retrieve Default and Character-Specific Settings Using a LEFT JOIN?

Effizientes Abrufen von Standard- und zeichenspezifischen Einstellungen mit LEFT JOIN

Dieses Beispiel zeigt, wie Sie Standardeinstellungen und gegebenenfalls zeichenspezifische Überschreibungen mithilfe eines LEFT JOIN abrufen. Die ursprüngliche Abfrage hat nur zeichenspezifische Einstellungen zurückgegeben, mit Ausnahme der Standardeinstellungen.

Der Schlüssel zum Abrufen beider liegt in der richtigen Positionierung der WHERE-Klausel. Anstatt nach der Verknüpfung zu filtern, integrieren Sie den Zeichen-ID-Filter in die Verknüpfungsbedingung:

<code class="language-sql">SELECT settings.*, character_settings.value
FROM settings
LEFT JOIN character_settings 
ON character_settings.setting_id = settings.id
AND character_settings.character_id = '1';</code>
Nach dem Login kopieren

Diese überarbeitete Abfrage führt einen LEFT JOIN zwischen den Tabellen settings und character_settings durch. Die ON-Klausel stellt sicher, dass nur übereinstimmende setting_ids verknüpft werden, und beschränkt die Verknüpfung weiter auf Datensätze, bei denen character_id „1“ ist. Entscheidend ist, dass LEFT JOIN garantiert, dass alle Zeilen aus der settings-Tabelle im Ergebnis enthalten sind, auch wenn es in character_settings keine passende Zeile gibt.

Der resultierende Datensatz wird wie folgt aussehen:

<code class="language-php">array(
    0 => array('somekey' => 'keyname', 'value' => 'thevalue'), // Default + Character-specific (if exists)
    1 => array('somekey2' => 'keyname2', 'value' => null), // Default only
    2 => array('somekey3' => 'keyname3', 'value' => null)  // Default only
);</code>
Nach dem Login kopieren

Zeilen mit einem Wert ungleich Null value geben sowohl Standardeinstellungen als auch zeichenspezifische Einstellungen an. NULL-Werte in der Spalte value bedeuten, dass für diesen bestimmten Schlüssel nur die Standardeinstellung existiert.

Das obige ist der detaillierte Inhalt vonWie rufe ich Standard- und zeichenspezifische Einstellungen mithilfe eines LEFT JOIN ab?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage