Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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, 4451 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 ...

Neue Wissensbeiträge
Drucker und Scanner

Samsung SL-M4025ND, firmware update und (kompatible) Tonerkassetten

(1)

Erfahrungsbericht von markus-1969 zum Thema Drucker und Scanner ...

Router & Routing

PfSense auf Supermicro Intel Xeon D-15x8 SoC Bare Bone

Tipp von Dobby zum Thema Router & Routing ...

Windows Server

Exchange 2010 auf Windows Server 2016 und AD

(2)

Tipp von Herbrich19 zum Thema Windows Server ...

KVM

How to: Libvirt Port forwarding

(2)

Anleitung von fundave3 zum Thema KVM ...

Heiß diskutierte Inhalte
Router & Routing
über Vmware auf eine FritzBox mit IPv6 per VPN (17)

Frage von Zockervogel zum Thema Router & Routing ...

Basic
Programmierung von Windows Programmen (8)

Frage von Ghost108 zum Thema Basic ...

Windows Userverwaltung
Gleiches Benutzerprofil für Anmeldung an TS und am lokalen System?? (6)

Frage von eastfrisian zum Thema Windows Userverwaltung ...