php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 02.11.2008, 12:54   #1 (permalink)
Neuer Benutzer
 
Registriert seit: 02.11.2008
Beiträge: 1
richyboy befindet sich auf einem aufstrebenden Ast
Standard Abfrage über mehrer Tabellen mit Berechnung

Guten Tag,

ich hoffe ihr könnt mir helfen, da ich mit Abfragen mehrere Tabellen noch Probleme habe.

Ich habe folgende Tabellen:

1. Personen Tabelle mit Feldern:
ID,Name,Strasse,Ort...

2. Tabelle mit Produkt:
ID,Personen_ID,Name,Version,Anzahl

Inhalt z.B.
Personen:
1,Müller,Alfredweg 2,48912 Berlin
2,Meyer,Musterstr. 12,48916 Berlin

Produkte:
1,2,Windows,98,2
2,2,Windows,XP,5
3,2,Windows,XP,10
4,2,Windows,Vista,2
5,1,Windows,XP,1
6,1,Windows XP,2


Ich erstelle eine Übersichtsliste, in der alle Personen gelistet werden:

SELECT
Personen.ID,
Personen.Name,
Personen.Ort,
FROM Personen,Produkte
Where
Personen.ID=Produkte.Personen_ID
GROUP BY Personen.ID order by Personen.Name


1. Nun meine erste Frage:
Ich möchte in meiner Ansicht neben den Kundendaten in der jeweiligen Zeile auch mit Kürzeln anzeigen lassen, welche Produkte der jeweilige Kunde hat.

Also z.B.
Müller 48912 Berlin XP
Meyer 48916 Berlin 98 XP Vista

Bisher rufe ich für jede Zeile separat die Tabelle Produkte auf und lese die einzelnen Zeilen, um die Produkte auszulesen.

Das dauert natürlich entsprechend lange.
Wie kann ich direkt in der Select Abfrage die Daten so abfragen, dass ich meine Person nur einmal ausgeworfen bekomme, die Produkte dazu hintereinander in Feldern?


2. Filtern
Ich Filter in der Abfrage auch nach Produkten. Ich frage z.B. ab, welche Person Windows XP hat:

SELECT
Personen.ID,
Personen.Name,
Personen.Ort,
FROM Personen,Produkte
Where
Personen.ID=Produkte.Personen_ID
and Produkte.Version='XP'
GROUP BY Personen.ID order by Personen.Name

Soweit so gut.
Nun möchte ich aber auch abfragen, welche Person hat XP und noch kein Vista. Dies klappt so ja nicht, da ich ja nicht abfragen kann:
and Produkte.Version='XP' and Produkte.Version<>'Vista'

Das trifft ja immer zu, da die jeweilige Zeile aus Produkt mit XP ja logischerweise kein Vista sein kann.


3. Zählen und Filern

Zudem möchte ich abfragen, welche Person hat z.B. mehr als 10 Windows XP Lizenzen:

SELECT
Personen.ID,
Personen.Name,
Personen.Ort,
FROM Personen,Produkte
Where
Personen.ID=Produkte.Personen_ID
and Produkte.Version='XP' and Produkte.Anzahl>'10'
GROUP BY Personen.ID order by Personen.Name

Das Ergebnis stimmt nicht, da es mehrere Zeilen mit dem Produkt XP für die Person gibt. Die Anzahl müßte addiert werden. Wie bringe ich das noch mit unter?


Es sind viele Fragen, ich hoffe aber dass mir jemand einen Lösungsansatz geben kann.

Vielen Dank

Richard
richyboy ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 04.11.2008, 12:00   #2 (permalink)
Neuer Benutzer
 
Registriert seit: 05.10.2008
Beiträge: 20
JudGer befindet sich auf einem aufstrebenden Ast
Standard

Huhu,

bei den ersten beiden Problemen sollte dir die MySQL Funktion GROUP_CONCAT weiterhelfen. Damit kannst du mehrere Datensätze mit einem weiteren gruppieren (mehrere Produkte zu einem Benutzer).

Hier ist es auch ganz gut beschrieben: Link

Ich kann dir leider gerade kein gutes Beispiel geben. Schau mal ob es dir schon hilft, ansonsten schaue ich heute Abend nochmal genauer.

LG
JudGer ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

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 an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
SELECT über zwei Tabellen KingCrunch Datenbanken 9 23.03.2007 04:01
Update über zwei Tabellen tekknotrip Datenbanken 2 26.02.2007 16:25
[Erledigt] MySQL Abfrage über 2 Tabellen Datenbanken 4 21.03.2006 11:44
Abfrage über zwei Tabellen (m. JOIN?) Spiff Datenbanken 3 13.02.2006 09:32
Ausgabe der Verknüpften tabellen über php skript PHP Tipps 2006 4 07.02.2006 15:04
Abfrage mehrerer Tabellen per PHP (Code vereinfachen) PHP Tipps 2007 4 18.12.2005 12:34
[Erledigt] abfrage mehrere tabellen PHP Tipps 2005-2 3 31.10.2005 21:57
Volltextsuche mit MATCH AGAINST über mehere Tabellen? Datenbanken 5 13.09.2005 15:02
mysql abfrage über 4 Tabelle - bis 3 geht, bei der 4. habert Datenbanken 2 08.09.2005 11:59
Abfrage zweier Tabellen mit COUNT() funktion Datenbanken 23 20.09.2004 22:13
[Erledigt] Abfrage über 3 Tabellen Datenbanken 3 20.09.2004 08:08
Abfrage zweier Tabellen funzt net richtig Datenbanken 1 17.09.2004 12:53
Abfrage über 2 Tabellen / Join agrajag Datenbanken 2 14.09.2004 23:05
suche über 8 tabellen PHP Tipps 2004 3 03.09.2004 12:48
Abfrage über 3 Tabellen PHP Tipps 2004 3 31.07.2004 22:34

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
laktosegehalt tabelle, tabelle produkt, produkte tabelle, be tabellen, be tabelle, mysql 4 tabellen berechnen, prduktetabellen, produkt tabelle, php abfrage und berechnung, be tabellen berechnen, mysql berechnungen mit tabellen, produkt berechnen mit php, be-tabellen, php produkt berechnen, putzmittelprodukte tabelle, be - tabellen, filter verknüpfte tabelle, php berechnungen tabelle, produkten tabelle, schnellbestimmung laktosegehalt

Alle Zeitangaben in WEZ +2. Es ist jetzt 09:57 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2010, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum