2016-10-19 1 views
1

Ich habe 2 MySQL-Tabellen:MYSQL - Zeile löschen basierend auf ID-Wert in anderen Tabelle

Customer_buyings:

BUY_ID NUMBER PLANT_ID CUSTOMER_ID 
    001  5   003   009 
    002  1   004   009 
    003  2   005   010 

Pflanzen:

PLANT_ID  PLANTNAME 
    003   BUXUS 
    ...   ... 

Jetzt möchte ich ein löschen bestimmte Zeile aus der "Kunden-Buyings" -Tabelle. Zum Beispiel das Werk mit der ID: 003. Aber ich habe nur die Customer_ID und die PLANTNAME in meinem Code zur Verfügung.

Ich suche nach einer MySQL-Abfrage, die die erste Zeile aus der Customer_buyings-Tabelle basierend auf der Customer_id und Plantname löscht (also müsste ich Plantname mit Plant_id von der anderen Tabelle vergleichen).

DELETE FROM Customer_buyings 
JOIN Plants 
ON ... 
WHERE ... 
AND Customer_id="009" 

Irgendwelche Vorschläge? Weil ich es nicht herausfinden konnte.

+0

Joins Sie aus dem Tabellen, die Sie löschen möchten, angeben müssen. Tue es gleich nach dem "Löschen" wie folgt: 'LÖSCHE Customer_buyings VON Customer_buyings JOIN ...' –

+0

Ich möchte nicht alle Einkäufe von dem bestimmten Kunden löschen. Ich möchte einen bestimmten löschen (Zum Beispiel nur der Buxus (Plant_id: 003) von Kunde 009); Nur die customer_id und der Plantname verfügbar – Kemagezien

Antwort

0

Sie benötigen eine richtige verbinden und eine, wo

DELETE c.* FROM Customer_buyings as c 
INNER JOIN Plants as p on c.plant_id = p.plant_id 
WHERE p.plantname= 'BUXUS' 
AND c.Customer_id="009" 
+0

habe ich schon versucht, aber nicht funktioniert – Kemagezien

+0

haben Sie Fehler ...? – scaisEdge

+0

Sie haben einen Fehler in Ihrer SQL-Syntax. Überprüfen Sie das Handbuch, das Ihrer MySQL-Server-Version für die richtige Syntax in der Nähe 'als c JOIN entspricht ... – Kemagezien

Verwandte Themen