Hoe kan ik een sum op een JOIN tabel doen.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
<?php
//Dit is mijn huidige statement
SELECT stat_user.name,stat_user.remos,stat_user.remhost,stat_user.lang,stat_user.browser SUM (stat_user_page.visits) AS stat_user_page.visits
FROM stat_user
LEFT JOIN stat_user_page stat_user_page ON stat_user_page.uid =stat_user.uid
//maar die geeft de volgende error
/*
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(stat_user_page.visits) AS stat_user_page.visits FROM stat_user LEFT JOIN stat_u' at line 1
*/
?>
//Dit is mijn huidige statement
SELECT stat_user.name,stat_user.remos,stat_user.remhost,stat_user.lang,stat_user.browser SUM (stat_user_page.visits) AS stat_user_page.visits
FROM stat_user
LEFT JOIN stat_user_page stat_user_page ON stat_user_page.uid =stat_user.uid
//maar die geeft de volgende error
/*
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(stat_user_page.visits) AS stat_user_page.visits FROM stat_user LEFT JOIN stat_u' at line 1
*/
?>
stat_user_page.visits deze kolom komt uit de table die in de JOIN staat
Weet iemand waar ik alle MySQL error nummers mer verklaring kan vinden kan vinden.
Groet Cees
Zet achter die As eens total_visits, in plaats van stat_user_page.visits
http://dev.mysql.com/doc/refman/5.0/en/error-messages-server.html
en
http://dev.mysql.com/doc/refman/5.0/en/error-messages-client.html
SELECT stat_user.name, stat_user.remos, stat_user.remhost, stat_user.lang, stat_user.browser, SUM( stat_user_page.visits ) AS total_val
FROM stat_user
LEFT JOIN stat_user_page stat_user_page ON stat_user_page.uid = stat_user.uid
MySQL retourneerde: Documentatie
#1140 - Mixing of GROUP columns (MIN(),MAX(),COUNT(),...) with no GROUP columns is illegal if there is no GROUP BY clause
Die JOIN lijkt het toch te doen
FROM stat_user, stat_user_page
WHERE stat_user_page.uid = stat_user.uid
GROUP BY stat_user_page.uid
Dit werkt, ik zal hem terug zetten naar een JOIN en daar ook een GROUP BY roepen, waarschijnlijk werkt die dan wel.
Maar echt snappen doe ik dat niet
Groet Cees
SELECT stat_user.name, stat_user.remos, stat_user.remhost, stat_user.lang, stat_user.browser, SUM( stat_user_page.visits ) AS total_var
FROM stat_user
LEFT JOIN stat_user_page stat_user_page ON stat_user_page.uid = stat_user.uid
GROUP BY stat_user_page.uid
Met GROUP BY geen problemen, maar waar die JOIN dan nog voor is ....
bedankt!
Het probleem zat overigens in het feit dat er in de naam achter AS een "." dot in de naam van het veld voorkwam, daar doet die flauw over
Gewijzigd op 01/01/1970 01:00:00 door Cees St
Dat zei robert dus al