Abfrage gibt Doppelte Werte

Alles, was MariaDB und MySQL betrifft, kann hier besprochen werden.

Abfrage gibt Doppelte Werte

Postby noch_in_ausbildung » 08. December 2008 18:40

Hallo,

ich habe ein Problem mit einer Abfrage. Es spuckt mir die Werte (Namen und dazugehörige Bemerkungen) doppelt aus.

Er soll mir eigentlich eine Liste ausgeben mit allen NAmen, Kundennummer etc. und wenn eine Bemerkung vermerkt ist, dann auch diese. Eine Schwierigkeit ist vielleicht, dass es Bemerkungen gibt, die für intern gedacht sind und Bemerkungen, die für die Ausgabe gedacht sind "bemerkungen_pap" und diese alle in einer Datenbankzeile gespeichert sind.

Hier mal die Abfrage, vielleicht kann mir ja jemand den/die Fehler schon nur damit sagen:

Code: Select all
SELECT
     a_kunde.`anrede` AS a_kunde_anrede,
     a_kunde.`name` AS a_kunde_name,
     a_kunde.`vorname` AS a_kunde_vorname,
     a_kunde.`kundennummer` AS a_kunde_kundennummer,
     a_kunde.`pap` AS a_kunde_pap,
     a_bemerkungen.`bemerkungpap` AS a_bemerkungen_bemerkungpap,
     a_termine.`terminort` AS a_termine_terminort,
     a_termine.`datum` AS a_termine_datum,
     a_termine.`termintyp` AS a_termine_termintyp,
     a_termine.`name` AS a_termine_name
FROM
     `a_kunde` a_kunde
     LEFT JOIN `a_kunde_a_termine_c` a_kunde_a_termine_c ON a_kunde.`id` = a_kunde_a_termine_c.`a_kunde_cea_kunde_ida`

     LEFT JOIN `a_termine` a_termine ON a_kunde_a_termine_c.`a_kunde_a_termine_idb` = a_termine.`id`

     LEFT JOIN `a_kunde_c_bemerkungen_c` a_kunde_c_bemerkungen_c ON a_kunde_a_termine_c.`a_kunde_cea_kunde_ida` = a_kunde_c_bemerkungen_c.`a_kunde_cna_kunde_ida` AND a_kunde.`id` = a_kunde_c_bemerkungen_c.`a_kunde_cna_kunde_ida`

     LEFT JOIN `a_bemerkungen` a_bemerkungen ON a_kunde_c_bemerkungen_c.`a_kunde_cemerkungen_idb` = a_bemerkungen.`id`
WHERE
     a_termine.deleted = 0
 AND a_kunde_a_termine_c.deleted = 0
 AND a_termine.terminort LIKE 'Musterhausen%'
 AND WEEK(a_termine.datum) = (WEEK(NOW())-1)
 AND a_kunde.pap = 'Mustermann'
 
ORDER BY
     a_termine.datum ASC,
     a_termine.termintyp ASC


Wenn mir jemand einen Tip geben kann wäre ich überglücklich (machenun schon seit heute Morgen um 7 dran rum)

Vielen Dank schon mal im Voraus

noch_in_ausbildung
noch_in_ausbildung
 
Posts: 1
Joined: 08. December 2008 14:31

Re: Abfrage gibt Doppelte Werte

Postby Mätes » 11. December 2008 11:59

Wenn zu dem Kunden z.B. zwei Termine existieren (oder anderes geJOINtes),
ist das nur normal.

SELECT * FROM Kunden
INNER JOIN Telefonnummern ON Kunden.id = Telefonnummern.kunden_id

Sobald ein Kunde zwei Telefonnummern hat, taucht er mitsamt allen
Kundendaten zweimal im Resultset auf.

gruß
User avatar
Mätes
 
Posts: 142
Joined: 13. April 2006 09:34
Location: kölle


Return to MariaDB - MySQL

Who is online

Users browsing this forum: No registered users and 3 guests