Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

sql datensätze löschen (MSSQL2005)

Frage Entwicklung Datenbanken

Mitglied: thgrch

thgrch (Level 1) - Jetzt verbinden

04.09.2008, aktualisiert 19:09 Uhr, 4462 Aufrufe, 7 Kommentare

Ich möchte alle Datensätze in der Tabelle A löschen, welche NICHT der Abfrage entsprechen.

Abfrage
SELECT fieldA FROM tableA INNER JOIN tableB ON tableA.fieldA = tableB.fieldB;

Herzlichen Dank für Eure Hilfe!
Mitglied: Biber
04.09.2008 um 11:16 Uhr
Moin thgrch,

01.
 delete from tableA where tableA.fieldA not in ( 
02.
SELECT fieldA FROM tableA INNER JOIN tableB ON tableA.fieldA = tableB.fieldB);
Grüße
Biber
Bitte warten ..
Mitglied: thgrch
04.09.2008 um 11:43 Uhr
Hallo und herzlichen Dank!

das will noch nicht.... Fehlermeldung
You can't specify target table 'onair45' for update in FROM clause
->onair45 ist tableA

tableA
fieldA
1
2
3
4
5
6

tableB
FieldB
5
6
5
4
6

alles in tableA löschen was nicht tableA.fieldA = tableB.fieldB
-> in tableA.fieldA wird 1,2 und 3 gelöscht

DANKE!!
Bitte warten ..
Mitglied: Biber
04.09.2008 um 11:58 Uhr
Moin thgrch,

dann kannst Du
  • entweder der tableA in der From-Clause einen Alias geben
  • oder, wahrscheinlich sogar eleganter, Du machst es über einen LEFT statt INNER JOIN:
01.
 delete from tableA  
02.
LEFT JOIN tableB ON tableA.fieldA = tableB.fieldB 
03.
Where tableB.fieldB is Null;
Grüße
Biber
Bitte warten ..
Mitglied: thgrch
04.09.2008 um 13:12 Uhr
Gut...

mit
SELECT fieldA FROM tableA INNER JOIN tableB ON tableA.fieldA = tableB.fieldB
-> werden die Werte 4,5 und 6 ausgegeben

mit
SELECT fieldA FROM tableA left JOIN tableB ON tableA.fieldA = tableB.fieldB Where tableB.fieldB is Null
-> 1,2,und3

...wie kann ich im tablea löschen??

Danke
Bitte warten ..
Mitglied: Biber
04.09.2008 um 13:30 Uhr
Sorry, thgrch,

entweder habe ich die Frage nicht verstanden ...
... oder Du die Antworten nicht ...
... oder die sind halt inkompatibel....

Wir sollten auf Hilfe von dritter Seite warten...

Grüße
Biber
Bitte warten ..
Mitglied: thgrch
04.09.2008 um 13:49 Uhr
DANKE

mit
SELECT fieldA FROM tableA left JOIN tableB ON tableA.fieldA = tableB.fieldB Where tableB.fieldB is Null

bekomme ich das gewünschte Ergebnis.

Für das löschen ersetzte ich SELECT fiendA durch
DELETE from tableA

DELETE from tableA FROM tableA left JOIN tableB ON tableA.fieldA = tableB.fieldB Where tableB.fieldB is Null

doch leider meldet MYSQL und MSSQL ein Syntax Fehler zurück...
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 'FROM tableA left JOIN tableB ON tableA.fieldA = tableB.fieldB Where tableB.field' at line 1

tja...
Bitte warten ..
Mitglied: thgrch
04.09.2008 um 19:09 Uhr
... tja mit MSSQL2005 funktioniert es!! SUUUPER!
... mit MYSQL 5 kommt der Syntax error


Herzlichen DANK!!!!!!
Bitte warten ..
Ähnliche Inhalte
Datenbanken
gelöst Access 2010 SQL Tabellen Datensätze einfügen (6)

Frage von Dr.Cornwallis zum Thema Datenbanken ...

Datenbanken
gelöst MS-SQL Tabellendaten kopieren und dann löschen (5)

Frage von clSchak zum Thema Datenbanken ...

PHP
PHP soll Datensätze in der Datenbank überprüfen (2)

Frage von Yanmai zum Thema PHP ...

Neue Wissensbeiträge
Sicherheit

Millionen Euro in den Sand gesetzt?

(3)

Information von transocean zum Thema Sicherheit ...

Sicherheit

How I hacked hundreds of companies through their helpdesk

Information von SeaStorm zum Thema Sicherheit ...

Heiß diskutierte Inhalte
Netzwerke
Mobile Einwahl IPSec VPN von iPhone iPad T-Mobile zur Pfsense (14)

Frage von Spitzbube zum Thema Netzwerke ...

LAN, WAN, Wireless
Eine Netzwerkdose im Wechsel für zwei unterschiedliche Netze (12)

Frage von kartoffelesser zum Thema LAN, WAN, Wireless ...

Voice over IP
SNOM D765 an LancomR883VAW (10)

Frage von MS6800 zum Thema Voice over IP ...

Windows Netzwerk
Ordner-Freigabe außerhalb der Domäne (9)

Frage von Remsboys zum Thema Windows Netzwerk ...