AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi MySQL doppelte Datensätze anzeigen...
Thema durchsuchen
Ansicht
Themen-Optionen

MySQL doppelte Datensätze anzeigen...

Ein Thema von NetSonic · begonnen am 20. Nov 2007 · letzter Beitrag vom 24. Dez 2007
Antwort Antwort
Seite 2 von 3     12 3      
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.541 Beiträge
 
Delphi 11 Alexandria
 
#11

Re: MySQL doppelte Datensätze anzeigen...

  Alt 20. Nov 2007, 17:13
Dann benutz die Abfrage doch als Subselect (nicht sehr schön, hat aber unter Firebird bei mir funktioniert).
SQL-Code:
SELECT Name,Vorname
FROM tblkunden
WHERE Name IN(
   SELECT A.Name
   FROM tblkunden A
   JOIN tblkunden B ON B.Name = A.Name AND B.Vorname = A.Vorname
   GROUP BY A.Name
   having COUNT (*) > 1)
AND Vorname IN(
   SELECT A.Vorname
   FROM tblkunden A
   JOIN tblkunden B ON B.Name = A.Name AND B.Vorname = A.Vorname
   GROUP BY A.Vorname
   having COUNT (*) > 1)
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#12

Re: MySQL doppelte Datensätze anzeigen...

  Alt 20. Nov 2007, 17:14
ich weiss nicht, ob MySQL folgende Abfrage noch verkaftet, aber so könnte es gehen:
SQL-Code:
SELECT tblkunden.*
FROM
tblkunden INNER JOIN (SELECT A.Nachname,A.Vorname
FROM tblkunden A
JOIN tblkunden B ON B.Nachname = A.Nachname AND B.Vorname = A.Vorname
GROUP BY A.Nachname,A.Vorname
HAVING COUNT(*) > 1) DevTbl
ON tblkunden.Vorname=DevTbl.Vorname AND tblkunden.Nachname=DevTbl.Nachname
ORDER BY tblkunden.Nachname
Andreas
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#13

Re: MySQL doppelte Datensätze anzeigen...

  Alt 20. Nov 2007, 18:55
Hallo NetSonic,

vielleicht so...

SQL-Code:
SELECT *
FROM tblkunden x
WHERE COALESCE(nachname, '') <> ''
  AND COALESCE(vorname, '') <> '
  AND EXISTS (SELECT nachname, vorname
              FROM tblkunden
              WHERE nachname = x.nachname
                AND vorname = x.vorname
              GROUP BY nachname, vorname
              HAVING COUNT(*) > 1)
ORDER BY nachname, vorname
Gruss
Thorsten
  Mit Zitat antworten Zitat
NetSonic

Registriert seit: 10. Mai 2007
124 Beiträge
 
Delphi 10 Seattle Professional
 
#14

Re: MySQL doppelte Datensätze anzeigen...

  Alt 21. Nov 2007, 08:15
Hey shmia, leider legt mein MySQL-Server bei der Abfrage eine lange, lange Pause ein... aber die SQL-Abfrage von omata macht genau das, was ich wollte.
Jetzt bekomme ich alle doppelten / mehrfach vorhandenen Datensätze angezeigt, und der Anwender kann entscheiden, welcher Eintrag entfernt werden soll / muss!

Danke an alle, die sich mit meinem Problem befasst haben!
  Mit Zitat antworten Zitat
Gonso

Registriert seit: 16. Dez 2007
Ort: Stuttgart
28 Beiträge
 
#15

Re: MySQL doppelte Datensätze anzeigen...

  Alt 23. Dez 2007, 14:39
@omata

kann man deine abfrage so verändern, dass ich nur doppelte datensätze bekomme aber nur einzeln.
deine abfrage zeigt mir in meiner tabelle 20 doppelte datensätze (10 * 2 datensätze.
Ich möchte nur 10 sehen, die zwar doppelt sind aber nicht doppelt angezeigt werden sollen.

als doppelt gilt: gleiche nachname und vorname.

Ich sollte aber alle felder in einem datensatz sehen (auch z.b. adresse, plz und noch viel mehr ca. 30 felder)
Gonso
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.541 Beiträge
 
Delphi 11 Alexandria
 
#16

Re: MySQL doppelte Datensätze anzeigen...

  Alt 23. Dez 2007, 15:14
In Anlehnung an meinen Beitrag #8:
SQL-Code:
SELECT A.Name,A.Vorname,A.bla,A.blubb,A...
FROM tblkunden A
JOIN tblkunden B ON B.Name = A.Name AND B.Vorname = A.Vorname
GROUP BY A.Name,A.Vorname,A.bla,A.blubb,A...
HAVING COUNT (*) > 1
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Gonso

Registriert seit: 16. Dez 2007
Ort: Stuttgart
28 Beiträge
 
#17

Re: MySQL doppelte Datensätze anzeigen...

  Alt 23. Dez 2007, 17:55
@DeddyH : danke (ist [leider] nur die halbe antwort)

man muss bei DeddyH alle felder angeben. ich wollte nur nachname und vorname angeben und alle andere felder nicht. ich habe 20 tabellen erstellt mit sehr vielen feldern und die angabe von allen felder ist sehr mühsam und keine allgemeine lösung.

kann mir jemand helfen?
Gonso
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.541 Beiträge
 
Delphi 11 Alexandria
 
#18

Re: MySQL doppelte Datensätze anzeigen...

  Alt 23. Dez 2007, 18:20
Entschuldige, aber Du hast ein suboptimales DB-Design kreiert und jetzt ist Dir die Angabe der zu ermittelnden Felder zuviel Arbeit?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Gonso

Registriert seit: 16. Dez 2007
Ort: Stuttgart
28 Beiträge
 
#19

Re: MySQL doppelte Datensätze anzeigen...

  Alt 23. Dez 2007, 18:30
ich habe nicht geschrieben, dass ich zu faul bin sondern, dass deine lösung (die ich auch vorher kannte) keine allgemeine lösung ist.

bei der abfrage von experte omata bruacht man auch nicht alle felder einzugeben (nur die index felder). ich suche eine allgemein lösung und keine diskusion über [suboptimales DB-Design].
Gonso
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.541 Beiträge
 
Delphi 11 Alexandria
 
#20

Re: MySQL doppelte Datensätze anzeigen...

  Alt 23. Dez 2007, 18:33
Das liegt daran, dass er in der äußeren Abfrage den Stern benutzen kann. Leider geht AFAIK DISTINCT(*) nicht.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:13 Uhr.
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