phpbar.de logo

Mailinglisten-Archive

AW: AW: Datenbank abfrage

AW: AW: Datenbank abfrage

Dirk Wendt (Paxar Deutschland GmbH) d.wendt at paxar.de
Mit Jul 2 11:40:11 CEST 2003


Hallo Sebastian,
besten Dank für die Antwort.

Folgendes ist dazu noch hinzuzufügen:
Es gibt noch ein Kriterium das Feld finu(Firmennummer), dieses ist in allen
Tabellen vorhanden und wird vorher bestimmt.(von 1 bis 5)

1. Abfrage für die Kundennummer
	SELECT kunu, name_01
	FROM kd_polen_kunden
	WHERE finu=1 
	ORDER BY kunu

2. Nach auswahl einer Kundennummer z.B. 96020 geht es weiter
SELECT auftr.kunu,auftr.modell, auftr.farbe, auftr.gr_bez, auftr.bez_text,
pflege.text_1, tkg.text01, tkg.text02
FROM kd_polen_auftr_2032 as auftr, kd_polen_pflege_2032 as pflege,
kd_polen_tkg_2032 as tkg
WHERE auftr.kunu=96020 
 AND pflege.pflege=auftr.pflege
 AND tkg.tkg=auftr.tkg
 AND pflege.finu=1 
 AND tkg.finu=1 
 AND auftr.finu=1

Und so bekomme ich das gewünschte Ergebnis
Kann man diesen Query natürlich vereinfachen?

Mit freundlichen Grüßen
 
Dirk 


-----Ursprüngliche Nachricht-----
Von: Cybot [mailto:4t2.com-mysql at tekkno4u.de] 
Gesendet: Mittwoch, 2. Juli 2003 10:08
An: mysql-de at lists.4t2.com
Betreff: Re: AW: Datenbank abfrage

> Es ist im Moment schwer das richtig zu erklären, aber es ist
folgendermaßen:
> Ich benötige Angaben von den Kunden aus der Tabelle Auftrag mit der
> Kundennummer X
> (diese habe ich schon aus der Kundentabelle)
> Der Kunde hat nun mehrere Datensätze z.B. mit Farbe rot, grün u.s.w.
> In jedem dieser Datensätze steht auch eine text1nr.
> Diese steht auch in der Tabelle text1,(In dieser sind alle verschiedenen
> text1nr gespeichert und eindeutig)
> ich benötige die dazu gehörigende Beschreibung.
> Bei der Tabelle text2 verhält sich das ebenso.
> 
> Mit dem Query Count hast du recht, es sind in der Tabelle Auftrag 332 mal
> diese Kundennummer.
> 
> Wenn ich nun bei jeder Kundennummer nachfrage welche Beschreibung es in
der
> Tabelle text1 gibt die die
> selbe text1nr, so darf es doch am Ende nur 332 Datensätze geben.
> 
> Aber wie geht es mit einem Query?
> 
>>Ich habe vorerst 3 Tabellen
>>Auftr, text1, text2
>>
>>In Auftrag die Felder
>>            kunu
>>            modell
>>            farbe
>>            text1nr
>>            text2nr
>>
>>In text1 die Felder
>>            text1nr
>>            beschreib
>>
>>In text2 die Felder
>>            text2nr
>>            text01
>>            text02
>>
>>nun möchte ich folgende Liste erhalten für eine kunu
>>  kunu, modell, farbe, beschreib, text01, text02
>>
>>in der Tabelle Auftr stehen die kunu mehrfach drin
>>
>>Meine Idee war folgende:
>>
>>SELECT 1.kunu, 1.modell, 1.farbe, 2.beschreibung, 3.text01, 3.text02
>>FROM Auftrag AS 1, text1 as 2, text2 as 3
>>WHERE 1.kunu=96020 AND 2.text1nr=1.text1nr AND 3.text2nr=1.text2nr
>>
>>Nun bekomme ich 1580 Datensätze angezeigt obwohl es nur 332
> 
> 
> mhmh, die frage ist was passt dir denn an den 1580 ergebnissn nicht? 
> denn das query an sich ist richtig, wohl nur nicht richtig in hinblick 
> darauf was du haben möchtest
> 
> mit 322 meinst du wohl die anzhal der datensätze in 'Auftrag' mit der 
> Kundennummer 96020 ?
> 
> also (SELECT COUNT(*) FROM `Auftrag` WHERE `kunu` = 96020) = 332 ?
> 
> wenn das der fall ist dann stimmt wohl was an deiner zuordnung zwichen 
> 'Artikel' und 'text1' und 'text2' nicht
> 
> eventuell ist die 'text1'.'text1nr' oder die 'text2'.'text2nr' nicht 
> eindeutig ???

also wenn 'text1'.'text1nr' und 'text2'.'text2nr' unique sind dann 
sollte ein

SELECT *
FROM `Auftrag`
  LEFT JOIN `text1` USING (`text1nr`)
  LEFT JOIN `text2` USING (`text2nr`)
WHERE `Auftrag`.`kunu` = 96020

genauso viele ergebnisse bringen wie ein

SELECT * FROM `Auftrag` WHERE `kunu` = 96020

leider hab ich auf die ferne auch keine idee was du machen könntest wenn 
das nicht der fall ist, außer du schaffst es ein dump mit wenigen 
datensäten zu erzeugen wo dieser umstand auch auftritt und schickst ihn mit

-- 
Sebastian Mendel

www.sebastianmendel.de
www.tekkno4u.de
www.nofetish.com

-- 
Infos zur Mailingliste, zur Teilnahme und zum An- und Abmelden unter
-->>  http://www.4t2.com/mysql 

-- 
Infos zur Mailingliste, zur Teilnahme und zum An- und Abmelden unter
-->>  http://www.4t2.com/mysql 


php::bar PHP Wiki   -   Listenarchive