Sortierung von Datensätzen, brauch dringend hilfe

  • Themenstarter Themenstarter ratbo
  • Beginndatum Beginndatum
R

ratbo

halli hallo,

also ich hab folgendes problem:

ich habe eine sql datenbank in der 3 tabellen sind.
eine für stammdaten ,eine für kontaktdaten, und eine für besuche.

nun ist es ja so , das zu jedem kontakt mehrere besuche zugeordnet werden können.
damit ich alle 3 Tabellen ornungsgemäß verknüpfen kann habe ich mit inner join gearbeitet.

es wird sobald ein neuer kontakt angelegt wird ein datensatz mit NULL in jedem Feld(ausser PNr da darüber verknüpft wird). damit habe ich erreicht das bei feldern die nicht ausgefüllt sind null dasteht.

wenn nun ein neuer besuch hinzugefügt wird zeigt mir meine abfrage den datensatz doppelt an halt für jeden besuch ich brauch aber pro kontakt nur den letzten besuch den man gemacht hat. also meine frage, wie muss ich folgende sql anweisung abändern, so das ich jeweils den kompletten datensatz ahbe aber halt nur einmal mit dem letzten termin.

HTML:
      SELECT S. * , K.PDL_Name, B.Datum, B.WDatum
      FROM (stammdaten AS S INNER JOIN kontaktdaten AS K ON S.PNr = K.PNr)
      INNER JOIN besuche AS B ON S.PNr = B.PNr
      ORDER BY `Tel` DESC

mass muss ich tun damit alle datensätze angezeigt werden aber jeder nur einmal halt mit letztem besuch. ACHJA besuche Tabelle hat feld BNr als PK nach dem man sortieren könnte weis aber net wie.

LG, David
 
ratbo hat gesagt.:
halli hallo,
es wird sobald ein neuer kontakt angelegt wird ein datensatz mit NULL in jedem Feld(ausser PNr da darüber verknüpft wird). damit habe ich erreicht das bei feldern die nicht ausgefüllt sind null dasteht.

Hi

das muss man nicht.
Das ist ja ein leerer Datensatz, der nicht gebraucht wird.
Verbinde die Tabellen mit dem LEFT JOIN, da werden auch die Kontakte aufgelistet, die noch keine Besuche haben.

Ansonsten ist dies auch auch guter Ansatz
http://www.tutorials.de/forum/showthread.php?p=1026803#post1026803
 
Zurück