So rufen Sie mehrere Datensätze ab, die sich auf einen einzelnen Datensatz beziehen
Bei der Datenbankverwaltung ist es häufig erforderlich, Daten aus mehreren Tabellen abzurufen durch Beziehungen verbunden. Dieser Artikel zeigt eine effiziente Methode zum Abrufen aller Informationen über eine bestimmte Organisation sowie die Vornamen ihrer Mitarbeiter.
Das Konzept, mehrere zusammengehörige Datensätze zu erhalten, erfordert die Verwendung einer Gruppenverkettung, die in SQL nicht standardisiert ist -92 oder SQL-99. Daher sind datenbankspezifische Lösungen erforderlich.
MySQL
MySQL stellt die Funktion GROUP_CONCAT zur Gruppenverkettung bereit. Um die gewünschten Daten abzurufen, führen Sie die folgende Abfrage aus:
select o.ID, o.Address, o.OtherDetails, GROUP_CONCAT( concat(e.firstname, ' ', e.lastname) ) as Employees from employees e inner join organization o on o.org_id=e.org_id group by o.org_id
PostgreSQL
PostgreSQL 9.0 führte die Funktion STRING_AGG ein:
select o.ID, o.Address, o.OtherDetails, STRING_AGG( (e.firstname || ' ' || e.lastname), ', ' ) as Employees from employees e inner join organization o on o.org_id=e.org_id group by o.org_id
Oracle
Oracle stellt LISTAGG für Gruppen bereit Verkettung:
select o.ID, o.Address, o.OtherDetails, LISTAGG(e.firstname || ' ' || e.lastname, ', ' ) as Employees from employees e inner join organization o on o.org_id=e.org_id group by o.org_id
MS SQL Server
Ähnlich wie PostgreSQL verwendet MS SQL Server STRING_AGG für die Gruppenverkettung:
select o.ID, o.Address, o.OtherDetails, STRING_AGG(e.firstname || ' ' || e.lastname, ', ' ) as Employees from employees e inner join organization o on o.org_id=e.org_id group by o.org_id
Fallback-Lösung
Für ältere Datenbankversionen oder nicht konform Für Datenbanken gibt es eine Fallback-Methode:
select o.ID, o.Address, o.OtherDetails, MY_CUSTOM_GROUP_CONCAT_PROCEDURE( o.ID ) as Employees from organization o
Durch die Implementierung dieser datenbankspezifischen Lösungen oder die Verwendung der Fallback-Methode können Sie die gewünschten Informationen effizient und abrufen genau.
Das obige ist der detaillierte Inhalt vonWie kann man mehrere verwandte Datensätze in SQL-Datenbanken effizient abrufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!