Autor Beitrag
maxk
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1696
Erhaltene Danke: 1

Win XP, Debian Lenny
Delphi 6 Personal
BeitragVerfasst: Fr 05.11.04 17:55 
Also,
ich habe zwei Tabellen:
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
// Tabelle Groups

group_id | group_name
---------------------------
    1    |        Test
    2    |        Test2

ausblenden Quelltext
1:
2:
3:
4:
5:
// Tabelle Accounts

group_id | account_name | ....
    1    |      Michael | ....
    1    |       Frank  | ....

Als Ergebnis der Abfrage hätte ich gerne folgendes:
ausblenden Quelltext
1:
2:
3:
 group_id |  group_name | COUNT(account_name)
     1    |      Test   |     2
     2    |      Test2  |     0

Ich möchte als die Gruppenid, den Namen der Gruppe und die Anzahl der zugeordneten Accounts - kann jemand helfen?

Danke,
maxk

_________________
Ein Computer wird das tun, was Du programmierst - nicht das, was Du willst.
jasocul
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6395
Erhaltene Danke: 149

Windows 7 + Windows 10
Sydney Prof + CE
BeitragVerfasst: Fr 05.11.04 18:24 
Ungetestet:
ausblenden Quelltext
1:
2:
3:
4:
select a.group_id, a.group_name, Count(account_name)
from groups a, accounts b
where a.group_id = b.group_id
group by a.group_id, a.group_name
maxk Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1696
Erhaltene Danke: 1

Win XP, Debian Lenny
Delphi 6 Personal
BeitragVerfasst: Fr 05.11.04 19:01 
Das geht schon ganz gut, allerdings bringt mir die Abfrage nur die Gruppen, denen Accounts zugeordnet sind. "Leere" Gruppen werden nicht angezeigt:
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
 group_id |  group_name | COUNT(account_name) 
     1    |      Test   |     2 

// Die folgende Zeile fehlt leider

     2    |      Test2  |     0
Irgendwie muss das doch gehen :(

_________________
Ein Computer wird das tun, was Du programmierst - nicht das, was Du willst.
smiegel
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 992
Erhaltene Danke: 1

WIN 7
D7 Prof., C#, RAD XE Prof.
BeitragVerfasst: Fr 05.11.04 19:16 
Hallo,

so müssten die fehlenden Info's erscheinen:
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
SELECT
  g.group_id, g.group_name, COUNT(a.account_name) AS Anzahl  
FROM
  groups g RIGHT JOIN accounts a ON g.group_id=a.group_id
GROUP BY
  g.group_id, g.group_name

_________________
Gruß Smiegel
Ich weiß, daß ich nichts weiß, aber ich weiß mehr als die, die nicht wissen, daß sie nichts wissen. (Sokrates)
maxk Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1696
Erhaltene Danke: 1

Win XP, Debian Lenny
Delphi 6 Personal
BeitragVerfasst: Fr 05.11.04 19:26 
Hallo, wenn ich RIGHT JOIN nehme, klappt's auch nicht (dann zeigt er die leeren Gruppen nicht an, dafür aber die unzugeordneten Accounts). Mit LEFT JOIN geht's aber - endlich :D
Kann mir bei der Gelegenheit bitte gleich jemand erklären, wo der Unterschied zwischen INNER, OUTER, LEFT, RIGHT JOIN ist und ob es noch weiteres wissenswertes gibt.

Danke,
maxk

_________________
Ein Computer wird das tun, was Du programmierst - nicht das, was Du willst.