genormaliseerde query

Overzicht Reageren

Daan

Daan

12/04/2008 14:53:00
Quote Anchor link
Hey iedereen..

Ik heb niet echt veel ervaring met het normaliseren van databases, maar omdat het wel netter is, ben ik er toch maar mee begonnen ;)
Maar nou heb ik de volgende query:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
SELECT id, reactie, auteur, datum FROM reacties


Maar bij auteur staat het id van de tabel 'gebruikers'. En in de tabel 'gebruikers' staat dan weer de naam.

Nu wil ik eigenlijk dat er in de bovenstaande query de naam komt van de auteur, en niet het id. Dus zoiets:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
SELECT id, reactie, (SELECT naam FROM gebruikers WHERE id = ??) AS auteur, datum FROM reacties


Maar ik heb geen idee hoe die geneste query eruit moet zien. Wat moet er bij de vraagtekens?

Dit werkt niet als subquery:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
SELECT gebruikers.naam FROM gebruikers,reacties WHERE gebruikers.id = reacties.auteur


Weet iemand hoe ik dit moet aanpakken?
Is het überhaupt duidelijk wat ik wil ;)

Alvast bedankt!
Daan
 
PHP hulp

PHP hulp

11/08/2022 22:14:17
 
Frank -

Frank -

12/04/2008 15:00:00
Quote Anchor link
Noteer ten eerste de boel eens overzichtelijk, dan heb je het probleem al voor de helft opgelost. Vervolgens er nog een JOIN infietsen en het probleem is helemaal de wereld uit.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
SELECT
  r.id,
  r.reactie,
  g.naam,
  r.datum
FROM
  reacties AS r
    INNER JOIN
      gebruikers AS g ON g.id = r. auteur
 
Eduard

Eduard

12/04/2008 15:02:00
Quote Anchor link
FROM 2 tabellen kan niet, waarschijnlijk heb je inner join nodig, kun je je tabel overzicht eens plaatsen?
 
Jelmer -

Jelmer -

12/04/2008 15:02:00
Quote Anchor link
Met een join. Volgens mij een left join om precies te zijn. Er staat hier wel een tutorial hierover.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
SELECT
    reacties.reactie,
    gebruikers.naam
FROM
    reacties
LEFT JOIN grebruikers ON
    reacties.auteur = gebruikers.id
WHERE
    reacties.blogpost = 4
 
Jelmer -

Jelmer -

12/04/2008 15:02:00
Quote Anchor link
* Grom, stomme site, stomme firefox... *
Gewijzigd op 01/01/1970 01:00:00 door Jelmer -
 
Daan

Daan

12/04/2008 15:04:00
Quote Anchor link
Thx.. Join heb ik nooit echt begrepen :s
Maar als ik het zo zie snap ik (gelukkig) wel wat er gebeurt, dus heb hier weer wat van geleerd!

T werkt zo, dus probleem opgelost ;)
 
Christiaan Baartse

Christiaan Baartse

12/04/2008 15:53:00
Quote Anchor link
Eduard schreef op 12.04.2008 15:02:
FROM 2 tabellen kan niet, waarschijnlijk heb je inner join nodig, kun je je tabel overzicht eens plaatsen?


Waarom niet?? Gaat anders heel goed.. (mooi is anders)
(onderwater schrijft MYSQL JOINS toch om naar een WHERE of andersom.. in iedergeval 1van de 2 :P)
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
SELECT
  r.id,
  r.reactie,
  g.naam,
  r.datum
FROM
  reacties AS r,
  gebruikers AS g
WHERE
g.id = r. auteur
Gewijzigd op 01/01/1970 01:00:00 door Christiaan Baartse
 



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.