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

Neue Wissensbeiträge
Windows Update

Novemberpatches und Nadeldrucker bereiten Kopfschmerzen

(14)

Tipp von MettGurke zum Thema Windows Update ...

Windows 10

Abhilfe für Abstürze von CDPUsersvc auf Win10 1607 und 2016 1607

(7)

Tipp von DerWoWusste zum Thema Windows 10 ...

RedHat, CentOS, Fedora

Fedora 27 ist verfügbar

Information von Frank zum Thema RedHat, CentOS, Fedora ...

Heiß diskutierte Inhalte
Windows Update
WSUS 4 (Server 2012 R2) - Windows 10 Updates nicht möglich (12)

Frage von c0d3.r3d zum Thema Windows Update ...

Windows Userverwaltung
gelöst Administrator hat alle Rechte verloren (10)

Frage von mrdead zum Thema Windows Userverwaltung ...

LAN, WAN, Wireless
Gebäude mit WLAN ausstatten (8)

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