Aeffle
Grünschnabel
Hallo Zusammen,
ich stehe vor einem großen Problem, was aber eigentlich kein großes Problem sein kann.
Ich möchte aus einer Tabelle alle Einträge löschen, deren Kunden-Nr aus einer Excel-Tabelle kommen. Jetzt kennt die Tabelle aus der ich löschen möchte aber nicht diese Kunden-Nr, sondern nur die ID aus der Kunden-Tabelle der SQL-DB.
Im Prinzip möchte ich also die Excel-Tabelle in die SQL-DB importieren, über einen JOIN die 3 Tabellen verknüpfen und die Treffer löschen.
Konkret:
Aus der Tabelle _listing möchte ich alle Einträge löschen, die über die Tabelle _sales_channel eine _sales_channel.id haben, die wiederrum einer Kunden-Nr aus der Tabelle dellistung entspricht.
Mein SELECT funktioniert, aber wie bastele ich daraus ein DELETE FROM?
SELECT dellistung.Kundennummer AS Expr1
FROM _listing INNER JOIN
_sales_channel ON _listing.sales_channel_id = _sales_channel.id INNER JOIN
dellistung ON _sales_channel.customer_no = dellistung.Kundennummer
ORDER BY dellistung.Kundennummer
Dieses hier ist von der Syntax her wohl korrekt, bringt aber ein Timeout vom Server:
DELETE FROM _listing
WHERE EXISTS
(SELECT *
FROM _listing INNER JOIN
_sales_channel ON _listing.sales_channel_id = _sales_channel.id INNER JOIN
dellistung ON _sales_channel.customer_no = dellistung.Kundennummer)
Hilfe, ich bastele schon seit 3 Tagen rum
Danke Aeffle
ich stehe vor einem großen Problem, was aber eigentlich kein großes Problem sein kann.
Ich möchte aus einer Tabelle alle Einträge löschen, deren Kunden-Nr aus einer Excel-Tabelle kommen. Jetzt kennt die Tabelle aus der ich löschen möchte aber nicht diese Kunden-Nr, sondern nur die ID aus der Kunden-Tabelle der SQL-DB.
Im Prinzip möchte ich also die Excel-Tabelle in die SQL-DB importieren, über einen JOIN die 3 Tabellen verknüpfen und die Treffer löschen.
Konkret:
Aus der Tabelle _listing möchte ich alle Einträge löschen, die über die Tabelle _sales_channel eine _sales_channel.id haben, die wiederrum einer Kunden-Nr aus der Tabelle dellistung entspricht.
Mein SELECT funktioniert, aber wie bastele ich daraus ein DELETE FROM?
SELECT dellistung.Kundennummer AS Expr1
FROM _listing INNER JOIN
_sales_channel ON _listing.sales_channel_id = _sales_channel.id INNER JOIN
dellistung ON _sales_channel.customer_no = dellistung.Kundennummer
ORDER BY dellistung.Kundennummer
Dieses hier ist von der Syntax her wohl korrekt, bringt aber ein Timeout vom Server:
DELETE FROM _listing
WHERE EXISTS
(SELECT *
FROM _listing INNER JOIN
_sales_channel ON _listing.sales_channel_id = _sales_channel.id INNER JOIN
dellistung ON _sales_channel.customer_no = dellistung.Kundennummer)
Hilfe, ich bastele schon seit 3 Tagen rum
Danke Aeffle