Heim > Datenbank > MySQL-Tutorial > Wie kann eine rekursive SQL-Abfragegruppe Produkte anhand der minimalen Produkt-ID abgleichen?

Wie kann eine rekursive SQL-Abfragegruppe Produkte anhand der minimalen Produkt-ID abgleichen?

Barbara Streisand
Freigeben: 2025-01-05 11:27:39
Original
278 Leute haben es durchsucht

How Can a Recursive SQL Query Group Matching Products by Minimum Product ID?

Rekursive Abfrage in SQL Server

Um passende Produkte gruppiert nach ihrer minimalen Produkt-ID abzurufen, kann eine rekursive Abfrage verwendet werden. Diese Abfrage durchläuft eine Tabelle, durchläuft die Product_ID-Beziehungen und sammelt die Ergebnisse in einer separaten Gruppentabelle. Die rekursive Struktur stellt sicher, dass alle Übereinstimmungen identifiziert und in die Ergebnisse einbezogen werden.

Lösung:

WITH CTE
AS
(
    SELECT DISTINCT
        M1.Product_ID AS Group_ID,
        M1.Product_ID
    FROM matches M1
        LEFT JOIN matches M2
            ON M1.Product_Id = M2.matching_Product_Id
    WHERE M2.matching_Product_Id IS NULL
    UNION ALL
    SELECT
        C.Group_ID,
        M.matching_Product_Id
    FROM CTE C
        JOIN matches M
            ON C.Product_ID = M.Product_ID
)
SELECT * FROM CTE ORDER BY Group_ID
Nach dem Login kopieren

In dieser Abfrage ist der CTE eine rekursive Definition, die identifiziert die minimale Product_ID für jede Gruppe. Die Abfrage beginnt mit der Auswahl der Product_IDs, die keine passende Product_Id haben, und erstellt die ersten Gruppen. Im rekursiven Schritt verknüpft die Abfrage den CTE mit der Übereinstimmungstabelle, um übereinstimmende Product_IDs zu identifizieren und sie den Gruppen hinzuzufügen. Dieser Vorgang wird fortgesetzt, bis alle Übereinstimmungen verarbeitet sind.

Das Endergebnis ist eine Tabelle mit dem Namen „Gruppen“, die die MIN-Produkt-ID für jede Gruppe sowie alle Produkt-IDs enthält, die zu dieser Gruppe gehören. Diese Struktur ermöglicht effiziente Abfragen zu Produktbeziehungen und -gruppierungen.

Hinweis:

Um die Rekursionstiefe zu steuern, verwenden Sie die Klausel OPTION(MAXRECURSION n) und ersetzen Sie n durch die gewünschte maximale Rekursionsstufe.

Beispiel: SQL Fiddle Demo

https://www.sqlfiddle.com/#!18/c772e/11

Das obige ist der detaillierte Inhalt vonWie kann eine rekursive SQL-Abfragegruppe Produkte anhand der minimalen Produkt-ID abgleichen?. 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