Heim >Datenbank >MySQL-Tutorial >Wie aktualisiere ich ein Tabellenfeld mithilfe von SQL-Joins?

Wie aktualisiere ich ein Tabellenfeld mithilfe von SQL-Joins?

DDD
DDDOriginal
2025-01-22 14:05:11853Durchsuche

How to Update a Table Field Using SQL Joins?

SQL UPDATE-Abfrage mit JOIN

Angenommen, Sie müssen ein Feld in einer Tabelle basierend auf Werten aktualisieren, die aus einer Verknüpfung mehrerer Tabellen abgerufen wurden. Beispielsweise könnten Sie über eine Tabelle „item_master“ (im) verfügen, die ein Feld „mf_item_number“ enthält, das basierend auf Daten aus „group_master“ (gm) und „Manufacturer_Master“ (mm) aktualisiert werden muss.

<code class="language-sql">SELECT
    im.itemid,
    im.sku AS iSku,
    gm.SKU AS GSKU,
    mm.ManufacturerId AS ManuId,
    mm.ManufacturerName,
    im.mf_item_number,
    mm.ManufacturerID
FROM
    item_master im, group_master gm, Manufacturer_Master mm
WHERE
    im.mf_item_number LIKE 'STA%'
    AND im.sku = gm.sku
    AND gm.ManufacturerID = mm.ManufacturerID
    AND gm.manufacturerID = 34;</code>

Um das Feld mf_item_number in item_master zu aktualisieren, können Sie die folgende SQL-Anweisung verwenden:

<code class="language-sql">UPDATE im
SET mf_item_number = gm.SKU
FROM item_master im
JOIN group_master gm ON im.sku = gm.sku
JOIN Manufacturer_Master mm ON gm.ManufacturerID = mm.ManufacturerID
WHERE im.mf_item_number LIKE 'STA%' AND gm.manufacturerID = 34;</code>

Diese Abfrage aktualisiert das Feld „mf_item_number“ in „item_master“ basierend auf dem SKU-Wert in „group_master“, der selbst durch eine Bedingung gefiltert wird, an der „Manufacturer_Master“ beteiligt ist.

Hier ist ein Beispiel für eine generische Update-Abfrage mit Joins:

<code class="language-sql">UPDATE A
SET foo = B.bar
FROM TableA A
JOIN TableB B ON A.col1 = B.colx
WHERE ...;</code>

In diesem Beispiel referenziert die UPDATE-Klausel den Tabellenalias A in der FROM-Klausel, um das Feld foo basierend auf dem B.bar-Wert zu aktualisieren, der aus der Verknüpfung zwischen TableA und TableB abgerufen wurde.

Das obige ist der detaillierte Inhalt vonWie aktualisiere ich ein Tabellenfeld mithilfe von SQL-Joins?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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