By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
458,192 Members | 1,856 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 458,192 IT Pros & Developers. It's quick & easy.

Probleme mit JOIN und COUNT,

P: n/a
Probleme mit JOIN und COUNT,

da ich sehr experimentierfreudig bin, versuche ich von zeit zu zeit
neue Tabellen und abfragen-konstrukte für meine Community...
da ich mir alles was ich über PHP und MySQL weiss selbst beigebracht
habe, kann ich auch schlecht einen mentor fragen, also frage ich
euch..

Ich versuche daten über die benutzer als so eine art benutzerübersicht
aufzubauen, diese Abfrage dauert jedoch 73 Sekunden und liefert
falsche Daten bei postings_forum und bei eintraege die zudem noch
identisch sind...

es geht mir nicht nur darum eine korrekte Anfrage (oder Tabellenidex)
zu erhalten sondern auch darum zu verstehen woran es liegt das die
Abfrage falsche Daten liefert und so langsam ist...

Jan Kühnel

meine "falsche" Abfrage:

SELECT user.user_id, `nic` , `emailview` , COUNT( forum.id ) AS
postings_forum, COUNT( gaestebuch.id ) AS eintraege, `register` ,
`lastlogin` , `status`
FROM `user`
LEFT JOIN forum ON user.user_id = forum.user_id
LEFT JOIN gaestebuch ON user.user_id = gaestebuch.owner_id
GROUP BY user.user_id
ORDER BY lastlogin DESC
LIMIT 0 , 10

meine 3 Tabellen:
CREATE TABLE `gaestebuch` (
`id` int(11) unsigned NOT NULL auto_increment,
`owner_id` smallint(6) unsigned NOT NULL default '0',
PRIMARY KEY (`id`)
) TYPE=MyISAM; // hatte zum textzeitpunkt 5000 einträge

CREATE TABLE `forum` (
`id` int(6) unsigned NOT NULL auto_increment,
`user_id` mediumint(9) unsigned NOT NULL default '0',
PRIMARY KEY (`id`),
) TYPE=MyISAM; // hatte zum textzeitpunkt 2000 einträge

CREATE TABLE `user` (
`user_id` smallint(6) unsigned NOT NULL auto_increment,
`nic` varchar(20) NOT NULL default '',
`emailview` enum('0','1','2') NOT NULL default '0',
`register` int(10) unsigned NOT NULL default '0',
`lastlogin` int(10) unsigned NOT NULL default '0',
`status` enum('0','1') NOT NULL default '0',
PRIMARY KEY (`user_id`)
) TYPE=MyISAM COMMENT='benutzerdaten'; // hatte zum textzeitpunkt 100
einträge
Jul 19 '05 #1
Share this question for a faster answer!
Share on Google+

This discussion thread is closed

Replies have been disabled for this discussion.