Query Abfrage Problem

nautiLus`

Erfahrenes Mitglied
hi, habe 2 tabellen:

create table k_links
(
id INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY,
catid INT(10) NOT NULL,
email VARCHAR(50) NOT NULL UNIQUE,
sitename VARCHAR(50) NOT NULL,
description TEXT NOT NULL,
comment TEXT NOT NULL,
url TEXT NOT NULL,
banner TEXT NOT NULL,
hits INT(10) NOT NULL,
clicks INT(10) NOT NULL,
pass VARCHAR(8) NOT NULL,
status VARCHAR(8) NOT NULL,
date DATE NOT NULL
);

create table k_links_comment
(
id INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY,
linkid INT(10) NOT NULL,
name VARCHAR(20) NOT NULL,
email VARCHAR(50) NOT NULL,
comment TEXT NOT NULL,
datetime DATETIME NOT NULL
);

und hänge bei einer abfrage:

ich möchte von der ersten tabelle informationen ausgeben, mit der dazugehörigen anzahl der kommentaren von der 2. tabelle. ich habs mal so weit geschafft, aber als count der kommentare im 2. table steht bei mir immer 0

hier meine bisherige anfrage:

SELECT lt.id, lt.sitename, lt.url, lt.banner, lt.hits, lt.clicks, lt.date, count(ct.comment) as countcomments
FROM k_links_comment ct
RIGHT OUTER JOIN k_links lt
USING(comment)
WHERE status = 'show'
GROUP BY lt.sitename, lt.url, lt.banner, lt.hits, lt.clicks, lt.date;

hoffe es ist so in etwa klar was ich meine.

danke :) cya nauti
 
ich versuche gerade zu ergründen wie du auf die sql Abfrage gekommen bist

GROUP BY lt.sitename, lt.url, lt.banner, lt.hits, lt.clicks, lt.date;

? was wolltes du denn damit erreichen

der auch
USING(comment) ?

linkid INT(10) NOT NULL, verweist auf id INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY - richtig ?
 
Zuerst mal Danke für die Antwort!

das group by hab ich, weil ich in meiner abfrage counte - wenn ich nicht gruppiere, dann gibt er mir einen error aus und das using nehm ich, weil in beieden tables "comment" vorkommt.

die abfrage ist soweit korrekt, was die ergebnisse angeht, nur eben die Kommentare wurden nicht gecountet, was ich aber zum sortieren der anzahl dieser brauche. im moment wird bei mir nur nach dem ersten buchstaben des kommentars sorieret, und das nach dem alphabet. will es aber nach der anzahl haben.

die linkid verweist auf die id, ja :)

danke cu
 
Zuletzt bearbeitet:
ja ok, aber wie mach ich das nun, dass er mir die kommentare countet?

mfg nauti
 
Zuletzt bearbeitet:
hi

hi,

ich habs jetzt so versucht:

SELECT lt.id, lt.sitename, lt.url, lt.banner, lt.hits, lt.clicks, lt.date, count(ct.comment) as countcomments
FROM k_links_comment ct
RIGHT OUTER JOIN k_links lt
USING(comment)
WHERE status = 'show'
GROUP BY ct.linkid

das liefert mir aber nicht alle spalten und comment wird auch noch nicht gezählt (überall 0)

--
SELECT lt.id, lt.sitename, lt.url, lt.banner, lt.hits, lt.clicks, lt.date, count(ct.comment) as countcomments
FROM k_links_comment ct
RIGHT OUTER JOIN k_links lt
USING(comment)
WHERE status = 'show'
GROUP BY lt.sitename, ct.linkid

liefert das (fast) richtige ergebnis, alle spalten passen, nur wieder mal comment macht mir einen strich durch die rechnung :/

mfg

nauti
 
Hi!

Muß gestehen, habe nur kurz geschaut, aber wieso "using (comment)" ?
Dein Table "k_links_comment" hängt doch per "linkid" an Table "k_links", oder?

> SELECT *,COUNT(lt.linkid) AS cnt_comments FROM k_links AS ct LEFT JOIN k_links_comments AS lt ON (ct.id=lt.linkid) WHERE status='show' GROUP BY ct.id;

Totaler Holzweg ?
 
man muss sich vorstellen:

table k_links:

| id | catid | email, sitename, comment, clicks etc...
| 1 | 1 | ...
| 2 | 2 | tutorials.de
| 3 | 3 | ...
| 4 | 1 | ...


table k_links_comment:

| id | linkid | comment |
| 1 | 1 | hi du |
| 2 | 2 | hi ich |
| 3 | 2 | hi all |
| 4 | 3 | hi xxx |

würde heißen tutorials.de hat id 2 und besitzt 2 kommentare (linkid)
diese möchte ich nun counten.

das heißt ich möchte alle informationen für eine statistik von k_links ausgeben.
das wären nun sitename, url, banner, usw wobei die kommentare vom 2 table k_links_commet gecountet werden sollen.
zu beachten ist, dass im 1. table eine spalte namens comment existiert.
ausgegeben werden dann alle informationen vom ersten table + die anzahl der kommentare zu jedem eintrag im 1 table.

@Pinky_M hab ein wenig mit deinem query gespielt, bin aber auf keinen grünen zweig gekommen.

mfg nauti

PS: bin neugierig, ob alles mit den "tabellen" lesebar ist und ob das auch wer versteht *g*
 

Neue Beiträge

Zurück