Du bist nicht eingeloggt.

Login

Pass

Registrieren

Community
Szene & News
Locations
Impressum

Forum / Bits und Bytes

Mal wieder eine MySQL-Frage

ZER0-CooL - 36
Champion (offline)

Dabei seit 09.2004
4459 Beiträge

Geschrieben am: 30.11.2008 um 21:05 Uhr

Hallo Leute :)

Folgendes Problem

2 Tabellen:
easyts_newscomment -> `newscomment_id` `newscomment_user`.......
easyts_user -> `user_id` `user_rights`...........

aktuelles Query:
SELECT `newscomment_user`, COUNT(*) as `newscomment_count`
FROM `easyts_newscomment`
GROUP BY `newscomment_user`
ORDER BY `newscomment_count`

Nun möchte ich aber das es nurnoch die anzeigt die einen bestimmten Wert bei `user_rights` haben, `newscomment_user` entspricht `user_id`

Gruß
ZER0-CooL
superrichi - 43
Fortgeschrittener (offline)

Dabei seit 10.2006
41 Beiträge
Geschrieben am: 30.11.2008 um 21:12 Uhr

Zitat von ZER0-CooL:

Hallo Leute :)

Folgendes Problem

2 Tabellen:
easyts_newscomment -> `newscomment_id` `newscomment_user`.......
easyts_user -> `user_id` `user_rights`...........

aktuelles Query:
SELECT `newscomment_user`, COUNT(*) as `newscomment_count`
FROM `easyts_newscomment`
GROUP BY `newscomment_user`
ORDER BY `newscomment_count`

Nun möchte ich aber das es nurnoch die anzeigt die einen bestimmten Wert bei `user_rights` haben, `newscomment_user` entspricht `user_id`

Gruß
ZER0-CooL


HAVING .... is die Lösung

Wozu ein Order?
ZER0-CooL - 36
Champion (offline)

Dabei seit 09.2004
4459 Beiträge

Geschrieben am: 30.11.2008 um 21:13 Uhr
Zuletzt editiert am: 30.11.2008 um 21:15 Uhr

Das Order ist gerade drin, damit die Leute mit den meisten comments oben sind ;-)

Having ist dafür eindeutig das falsche, was ich brauche ist eher ein Left Join, da steig ich aber nicht ganz durch =)
superrichi - 43
Fortgeschrittener (offline)

Dabei seit 10.2006
41 Beiträge
Geschrieben am: 30.11.2008 um 21:16 Uhr

Zitat von ZER0-CooL:

Das Order ist gerade drin, damit die Leute mit den meisten comments oben sind ;-)

Having ist dafür eindeutig das falsche, was ich brauche ist eher ein Left Join, da steig ich aber nicht ganz durch =)


Ah, okay, jetzt sehe ich erst was du willst. In der oberen Abfrage machts halt keinen sinn, da nur ein row zurückgegeben wird.

Du willst die beiden Tabbellen joinen: machst du mit INNER JOIN, findest sicher deinen weg
ZER0-CooL - 36
Champion (offline)

Dabei seit 09.2004
4459 Beiträge

Geschrieben am: 30.11.2008 um 21:18 Uhr
Zuletzt editiert am: 30.11.2008 um 21:19 Uhr

Zitat von superrichi:

Zitat von ZER0-CooL:

Das Order ist gerade drin, damit die Leute mit den meisten comments oben sind ;-)

Having ist dafür eindeutig das falsche, was ich brauche ist eher ein Left Join, da steig ich aber nicht ganz durch =)


Ah, okay, jetzt sehe ich erst was du willst. In der oberen Abfrage machts halt keinen sinn, da nur ein row zurückgegeben wird.

Du willst die beiden Tabbellen joinen: machst du mit INNER JOIN, findest sicher deinen weg


Es kommen zwei zurück:
`newscomment_user`, COUNT(*) as `newscomment_count`

Ich steig mit den Joins nicht durch, kannst mir vlt. helfen? :-D
superrichi - 43
Fortgeschrittener (offline)

Dabei seit 10.2006
41 Beiträge
Geschrieben am: 30.11.2008 um 21:21 Uhr

Hehe, sorry. zu voreilig.

Nichtsdestotrotz. Sieht ungefähr so aus

Select x,y,z
from tableA Inner Join TableB
on tableA.spalte = tableB.spalte
Group...
Inco - 37
Halbprofi (offline)

Dabei seit 09.2005
178 Beiträge

Geschrieben am: 30.11.2008 um 21:23 Uhr

Ausschmücken und mit Joins arbeiten

Driven by Instinct !

superrichi - 43
Fortgeschrittener (offline)

Dabei seit 10.2006
41 Beiträge
Geschrieben am: 30.11.2008 um 21:32 Uhr

Zitat von ZER0-CooL:


Having ist dafür eindeutig das falsche, was ich brauche ist eher ein Left Join, da steig ich aber nicht ganz durch =)


Naja, having ist die bedingung von group by. Also wirste auch brauchen, wenn du da noch selektieren willst.

SELECT `newscomment_user`, COUNT(*) as `newscomment_count`
FROM `easyts_newscomment`
INNER JOIN easyts_user
ON easyts_newscomment.newscomment_user = easyts_user.user_id
GROUP BY newscomment_user


(HAVING blabla < x) oder du nimmst natürlichne einfache where clause
WHERE user_rights = y
ZER0-CooL - 36
Champion (offline)

Dabei seit 09.2004
4459 Beiträge

Geschrieben am: 30.11.2008 um 21:36 Uhr

Danke, du bist ein Schatz :engel: :totlacher:
  [Antwort schreiben]

Forum / Bits und Bytes

(c) 1999 - 2026 team-ulm.de - all rights reserved - hosted by ibTEC Team-Ulm

- Presse - Blog - Historie - Partner - Nutzungsbedingungen - Datenschutzerklärung - Jugendschutz -