2017-06-08 5 views
0

Ich habe einen Zoo DB und ich muss eine Zeile löschen, wenn ein Container kein Tier darin hat. Ich tryied dies:MySQL - Löschen einer Zeile mit einer Bedingung

DELETE FROM container 
WHERE (SELECT COUNT(NameAnimal), NameContainer 
FROM animal, container 
WHERE container.CodContainer = 
animal.CodContainer AND 
animal.CodContainer = 
container.CodContainer 
GROUP BY container.CodContainer) = 0;` 

Und ich habe diesen Fehler:

`Operand should contain 2 column(s)e` 

Irgendwelche Ideen?

Antwort

0

Ihr Problem ist Ihre Where-Klausel. Sie erhalten die Anzahl von NameAnimal und den NameContainer und überprüfen, ob sie gleich 0 sind. Dies kann nicht funktionieren, da Sie zwei Spalten nehmen und dann sehen, ob sie gleich 0 sind. Ich nehme an, dass Sie wahrscheinlich den Teil von löschen möchten Die Select-Anweisung mit NameContainer, um Ihr Problem zu beheben.

+0

ich das getan hätte, aber jetzt bin ich diese Meldung bekommen: „Table‚Container‘wird zweimal angegeben, sowohl als Ziel für‚Löschen‘und als separate Quelle für Daten. " Also habe ich versucht, den Container in der Zeile FROM Tier, Container zu entfernen, aber es hat nichts gelöscht, wie es sollte. – BigBoyBC

0

Ich habe es NOT IN und eine kleine Auswahl erfolgt mit:

DELETE FROM CONTAINER 
WHERE CodContainer NOT IN (SELECT CodContainer FROM animal 
GROUP BY CodContainer); 
Verwandte Themen