SQL en 3 Tabellen

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Daan

Daan

25/09/2007 20:22:00
Quote Anchor link
Hey,
Ik heb niet echt veel ervaring met SQL, dus misschien dat iemand mij kan helpen?

Wat ik nu heb is:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
SELECT
    Users.name,
    Users.birth_date,
    COUNT(Files.user_id) AS files,
    MAX(Logins.date) AS last
FROM
    Users,
    Files,
    Logins
WHERE
    Users.id = 1
    AND Files.user_id = 1
    AND Logins.user_id = 1


Ik snap dat alles achter de WHERE fout is, maar ik heb geen idee hoe het dan moet. Dit is de error:
#1140 - Mixing of GROUP columns (MIN(),MAX(),COUNT(),...) with no GROUP columns is illegal if there is no GROUP BY clause

Voor als het niet helemaal duidelijk is:
Ik wil dus...
  • ...uit de tabel Users de 'name' en 'birth_date' weten
  • ...uit de tabel Files weten hoeveel rows er voor die gebruiker zijn
  • ...uit de tabel Logins weten wanneer de laatste regel was voor die gebruiker


Volgens mij moet ik gebruik maken van een INNER JOIN, maar omdat het over 3 tabellen gaat heb ik geen idee.. Iemand tips?
Alvast bedankt!
Daan

Edit:

Wat voel ik me stom, zech..
'k ben de FROM vergeten.
ff kijken of het dan wel werkt


Edit:

De query veranderd en de error die ik krijg.
Hij werkt dus nog steeds niet.. :s
Gewijzigd op 01/01/1970 01:00:00 door Daan
 
PHP hulp

PHP hulp

28/03/2024 23:05:18
 
Robert Deiman

Robert Deiman

25/09/2007 20:29:00
Quote Anchor link
Je kan dit beter met een JOIN doen, dat werkt veel beter!
Klik voor een tut
 
Citroen Anoniem Graag

Citroen Anoniem Graag

25/09/2007 20:39:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
SELECT
    Users.name,
    Users.birth_date,
    COUNT(Files.user_id) AS files,
    MAX(Logins.date) AS last
FROM
    Users,
    Files,
    Logins
GROUP BY
    Users.name,
    Users.birth_date,
    Files.user_id,
    Logins.date,
    Users.id,
    Logins.user_id
HAVING
    Users.id = 1
    AND Files.user_id = 1
    AND Logins.user_id = 1


Zoiets?
 
Daan

Daan

25/09/2007 20:50:00
Quote Anchor link
#1054 - Unknown column 'Files.user_id' in 'having clause'

Maar ik weet zeker dat Files.user_id bestaat, want dit doet hij wel goed:
SELECT user_id FROM Files
 
Daan

Daan

25/09/2007 21:12:00
Quote Anchor link
Volgens mij doet hij het ook niet met een JOIN, omdat de waarden niks met elkaar te maken hebben. Er moet gewoon één waarde uit komen, dus misschien dat het handiger is om 3 query's te maken?
 
- SanThe -

- SanThe -

25/09/2007 21:15:00
Quote Anchor link
Niet Bumpen.
Bumpen::
Twee of meer keer achter elkaar in een topic posten heet bumpen. Bumpen is pas na 24 uur toegestaan en kan een reden zijn voor de admins en moderators om een topic te sluiten. Gebruik indien nodig deAfbeelding knop om je tekst aan te passen.
 
Daan

Daan

25/09/2007 21:21:00
Quote Anchor link
Ok sorry..
 
Robert Deiman

Robert Deiman

25/09/2007 21:29:00
Quote Anchor link
@Daan:

Snap je een join wel dan, de waardes hebben volgens jou query namelijk wel degelijk met elkaar te maken!!

HAVING
Users.id = 1
AND Files.user_id = 1
AND Logins.user_id = 1


Het id uit Users, moet overeenkomen me zowel de user_id uit Files als uit Login, dat is precies waarvoor een join heel geschikt is
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.