Zum Inhalt springen

[MYSQL] statement -> gleiche datensätze


forTeesSake

Empfohlene Beiträge

hi und hallo,

bin leider nicht der grosse sql crack und habe deswegen folgende frage:

ich habe eine tabelle (vereinfacht dargestellt)

tabelle 'kunden'

- mitgliedsNr

- kontonummer

nun möchte ich aus der tabelle über ein sql statement alle einträge herausfinden bei denen mitgliedNr und kontonummer gleich sind.

also im endeffekt doppelte einträge herausfiltern, und mir all diese datensätze anzeigen lassen.

ich hab schon bisschen mit distinct gearbeitet, aber so komme ich glaube ich nicht hin.

weiss jemand rat?

vielen dank

Link zu diesem Kommentar
Auf anderen Seiten teilen

select mitgliedsnr from kunden where mitgliedsnr = kontonummer
liefert alle mitgliedsnummern, welche mit der kontonummer ident sind (voraussetzung bei mir: mitgliedsnummer ist der PK). wenn du keinen PK verwendest und doppelte rows hast:
select distinct mitgliedsnr, kontonummer from kunden where mitgliedsnr = kontonummer

liefert dir doppelte datensätze als eindeutige ergebniszeilen.

s'Amstel

Link zu diesem Kommentar
Auf anderen Seiten teilen

nun möchte ich aus der tabelle über ein sql statement alle einträge herausfinden bei denen mitgliedNr und kontonummer gleich sind.


SELECT * FROM kunden WHERE mitgliedsNr = kontonummer ;

Das gibt dir die Datensätze bei dennen mitgliedsNr und Kontonummer gleich sind.
also im endeffekt doppelte einträge herausfiltern, und mir all diese datensätze anzeigen lassen.
Allerdings vermute ich das du eher sowas wie das hier suchst

SELECT DISTINCTROW First(kunden.mitgliedsNr), First(kunden.Kontonummer),

Count(kunden.mitgliedsNr) AS AnzahlVonDuplikaten

FROM kunden

GROUP BY kunden.mitgliedsNr, kunden.Kontonummer

HAVING (((Count(kunden.mitgliedsNr))>1) AND ((Count(kunden.Kontonummer))>1));

Link zu diesem Kommentar
Auf anderen Seiten teilen



SELECT T1.MNr FROM Kunden T1 JOIN Kunden T2 ON 

(T1.MNr = T2.MNr AND T1.KNR = T2.KNr)


Liefert dir alle Mitgliedsnummern, die auf dein obiges Beispiel passen.

hiho. also wenn ich das statement ausführe bekomme ich immer ALLE datensätze.

is ja auch klar glaube ich denn T1 und T2 sind ja immer gleich, also erfolg der join über alle rows und alle datensätze wrden ausgegeben...:confused:

Link zu diesem Kommentar
Auf anderen Seiten teilen

is ja auch klar glaube ich denn T1 und T2 sind ja immer gleich, also erfolg der join über alle rows und alle datensätze wrden ausgegeben...:confused:

klar... Denkfehler bei mir :rolleyes:

Muss ich mir nochmal durch den Kopf gehen lassen.

EDIT:

Hast du noch ein eindeutiges Feld in jedem Satz? Also z.B. eine ID?



SELECT T1.MNr FROM Kunden T1 JOIN Kunden T2 ON 

(T1.MNr = T2.MNr AND T1.KNR = T2.KNr AND T1.id <> T2.id)


sollte nämlich gehen

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...