php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 06.06.2011, 23:58  
Benutzer
 
Registriert seit: 29.05.2011
Beiträge: 58
PHP-Kenntnisse:
Fortgeschritten
seb_ befindet sich auf einem aufstrebenden Ast
Standard [Erledigt] JOIN => t2 mit abweichender Ergebnistabelle (Anzahl Einträge)

Aufbau:
Code:
t1 products:
id, name, pri, usw
1, beispiel1, x.xx
2, beispiel1, x.xx
3, beispiel1, x.xx
4, beispiel1, x.xx

t2 pr_calc:
id, pid, name
1, 2, test1, x.xx
2, 2, test2, x.xx
3, 2, test3, x.xx
4, 4, dieses, x.xx
5, 4, jenes, x.xx
6, 4, sonstiges, x.xx
7, 4, alles, x.xx 
Statement:
Code:
SELECT 
   products.id, 
   products.name, 
   products.pri,  
   COUNT(pr_calc.pid) AS prc_anz, 
   pr_calc.id AS prc_id, 
   pr_calc.name AS prc_name, 
   pr_calc.pri AS prc_pri 
FROM 
   products 
LEFT OUTER JOIN 
   pr_calc ON pr_calc.pid = products.id 
GROUP BY 
   products.id, 
   pr_calc.id 
ORDER BY 
  products.id ASC
Ausgabe:
Code:
Array
(
    [id] => 1
    [name] => Beispiel1
    [pri] => 149.00
    [prc_anz] => 0
    [prc_id] => 
    [prc_name] => 
    [prc_pri] =>
)

Array
(
    [id] => 2
    [name] => Beispiel2
    [pri] => 99.00
    [prc_anz] => 1
    [prc_id] => 1
    [prc_name] => test1
    [prc_pri] => 4.99
)

Array
(
    [id] => 2
    [name] => Beispiel2
    [pri] => 99.00
    [prc_anz] => 1
    [prc_id] => 2
    [prc_name] => test2
    [prc_pri] => 5.99
)
usw.
Lediglich der Syntax für COUNT() gelingt mir nicht. Hier soll "prc_anz" für "pid 2 (t2)" 3 ergeben und bei "pid 4 (t2)" dementsprechend 4. Ohne GROUB BY => pr_calc.id klappt das selbstverständlich super, nur haut dann die Ergebnistabelle von pr_calc nicht hin. Und mittels SUBSelect bekomme ich es auch nicht zum laufen. Vielen Dank im Voraus!

MfG

--------------------------
€dit: 1:02 Uhr

Habe die Lösung:
Code:
SELECT 
   products.id, 
   products.name, 
   products.pri, 
   COUNT(pr_calc.id) AS prc_anz, 
   GROUP_CONCAT(pr_calc.id SEPARATOR ', ') AS prc_id,
   GROUP_CONCAT(pr_calc.name SEPARATOR ', ') AS prc_name,
   GROUP_CONCAT(pr_calc.pri SEPARATOR ', ') AS prc_pri 
FROM 
   products 
LEFT JOIN 
   pr_calc ON pr_calc.pid = products.id 
GROUP BY 
   products.id, pr_calc.pid 
ORDER BY 
   products.id ASC
Schöner Nebeneffekt, die Arrayausgabe ist nun auch effizienter.

Geändert von seb_ (07.06.2011 um 01:08 Uhr).
seb_ ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

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
[Erledigt] Anzahl der Einträge zählen Dragonfly Datenbanken 2 13.09.2009 16:11
Auflistung, Anzahl Einträge pro Seite LisaSimpson PHP Tipps 2009 5 30.05.2009 10:50
[Erledigt] array sortieren PHP Tipps 2004 17 13.05.2009 10:44
Persistence Framework #Avedo Software-Design 37 28.03.2009 17:32
Frage zu Join xiled PHP Tipps 2009 1 05.01.2009 10:37
[Erledigt] Left join und inner join stefanjann Datenbanken 7 16.10.2008 15:45
Anzahl der Einträge einer MySQL-Tabelle Datenbanken 8 19.06.2006 19:14
Problem mit Inner join Jabi Datenbanken 15 09.05.2006 14:10
Anzahl Bestellungen per LEFT JOIN dauert, dauert, dauert ... Datenbanken 13 06.02.2006 19:15
Einträge nach Anzahl sortiert ausgeben Riot Datenbanken 6 19.09.2005 19:13
anzahl der einträge pro person Datenbanken 3 07.07.2005 17:20
anzahl der einträge auslesen faultier PHP Tipps 2005-2 1 09.06.2005 11:39

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
join name der ergebnistabelle

Alle Zeitangaben in WEZ +2. Es ist jetzt 11:56 Uhr.




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