Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   DB Abfrage Delete + Left Join (https://www.delphipraxis.net/156067-db-abfrage-delete-left-join.html)

youuu 18. Nov 2010 14:31

Datenbank: mysql • Version: 5.x • Zugriff über: devart

DB Abfrage Delete + Left Join
 
SQL-Code:
DELETE FROM `kundendaten` AS K
LEFT JOIN `links` AS L ON (K.link_id = L.Link_id)
WHERE
(L.link_id IS NULL) AND (K.kd IS NULL)
Bei dieser Abfrage erhalte ich immer einen Syntax fehler, von MySql zurück.
Allerdings bei dieser Abfrage klappt alles

SQL-Code:
Select * FROM `kundendaten` AS K
LEFT JOIN `links` AS L ON (K.link_id = L.Link_id)
WHERE
(L.link_id IS NULL) AND (K.kd IS NULL)

Wieso?

ToFaceTeKilla 18. Nov 2010 14:34

AW: DB Abfrage Delete + Left Join
 
Ungeprüft und k.A. ob MySQL das kann (benutze selbst nur MSSQL):
SQL-Code:
DELETE FROM `kundendaten` 
FROM `kundendaten` AS K
LEFT JOIN `links` AS L ON (K.link_id = L.Link_id)
WHERE
(L.link_id IS NULL) AND (K.kd IS NULL)

youuu 18. Nov 2010 14:41

AW: DB Abfrage Delete + Left Join
 
ebenfalls Syntax error

DeddyH 18. Nov 2010 14:43

AW: DB Abfrage Delete + Left Join
 
Geht es so?
SQL-Code:
DELETE FROM `kundendaten` AS K
WHERE
  K.kd IS NULL
  AND NOT EXISTS(
    SELECT * FROM `links` AS L
    WHERE L.Link_id = K.link_id
  )

youuu 18. Nov 2010 14:50

AW: DB Abfrage Delete + Left Join
 
Leider ebenfalls nein

Zitat:

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE
K.kd IS NULL
AND NOT EXISTS(
SELECT * FROM `links` AS L
WH' at line 2

ToFaceTeKilla 18. Nov 2010 15:38

AW: DB Abfrage Delete + Left Join
 
Also in der MySQL Reference stehts auch so, wie ich es geposted hab. Könntest evtl. noch das erste "FROM" weglassen. Und vielleicht die Anführungszeichen? Warum sind die überhaupt da drin?

DeddyH 18. Nov 2010 15:43

AW: DB Abfrage Delete + Left Join
 
Da steht aber noch der Tabellenname nach dem DELETE (überhaupt eine merkwürdige Syntax). Ist das eigentlich wirklich MySQL > 4.0?

omata 18. Nov 2010 16:05

AW: DB Abfrage Delete + Left Join
 
SQL-Code:
DELETE FROM kundendaten
WHERE kd IS NULL
  AND NOT EXISTS (SELECT * 
                  FROM links
                  WHERE link_id = kundendaten.link_id)

DeddyH 18. Nov 2010 16:41

AW: DB Abfrage Delete + Left Join
 
Und wo ist da der große Unterscheid zu #4 außer dem Verzicht auf Aliase?

omata 18. Nov 2010 20:31

AW: DB Abfrage Delete + Left Join
 
Der Unterschied ist einfach der, das es keinen Syntax-Error beim Ausführen produziert. Sonst noch Fragen?


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:56 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz