[MYSQL] Id naar woord veranderen die in een andere tabel zit

Pagina: 1
Acties:

  • DutchTux
  • Registratie: April 2003
  • Laatst online: 01-04-2025

DutchTux

Plaatjeloos

Topicstarter
Het zit zo dat ik twee tabellen heb 1 daarvan is een table vol berichten en 1 daar zit alle gebruikers.
Nu heb ik in Bericht tabel by userid (de gebruiker die het heeft gepost) een nummer die samen valt met de nummer in het tabel van de gebruikers.

Nu vraag ik me af hoe je dynamisch in Mysql die userid in berichten tabel verander in die van gebruikersnaam in de gebruikers tabel zonder de berichten tabel te veranderen.

Kan iemand een voorbeeld of me naar een topic sturen waren goed voorbeeld instaat.

A random guy with a Computer.


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 19-05 21:24

NMe

Quia Ego Sic Dico.

Begrijp ik het goed? Wil je het user-id veld in de berichtentabel vervangen door de gebruikersnaam? Waarom? :? Onzin dus :P

Maar ik heb geen idee wat je dan wel bedoelt. :?

[ Voor 25% gewijzigd door NMe op 07-11-2004 14:18 ]

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • DutchTux
  • Registratie: April 2003
  • Laatst online: 01-04-2025

DutchTux

Plaatjeloos

Topicstarter
Berichten tabel
IDonderwerpberichtuserid
1BlaatBlaren zijn niet stoer1


gebruikers Tabel
IDusernamePass
1gebruikerwachtwoord


Wat ik nu wil is dat in het tabel "berichten" de hele column userid vervangen naar username die in "gebruikers" tabel.

Ik wil dit in Mysql doen want anders zit ik steeds in een loop hetzelfde in php bij ieder bericht

A random guy with a Computer.


Verwijderd

Je weet toch wel dat dit een verslechtering van het model is hè?
Nu heb je een mooie genormaliseerde structuur, en daar wil je nu weer vanaf...waarom?

  • Pinobigbird
  • Registratie: Januari 2002
  • Laatst online: 18:31

Pinobigbird

doesn't share food!

Dit zou je niet in MySql moeten regelen, maar je moet je manier van opslaan in de DB veranderen.
Waarom je dit zou willen doen is mij echt een raadsel, het gaat namelijk in tegen de normalisatieprincipes van DB's.
Het lijkt mij dat de username kan veranderen. Wanneer dat gebeurt, zou je in jou gewenste situatie óók die username in alle berichten van die user moeten veranderen.
Niet doen dus.

Joey: Nice try. See the Netherlands is this make believe place where Peter Pan and Tinkerbell come from.
https://kattenoppasleiderdorp.nl
PV: 3080Wp ZO + 3465Wp NW = 6545Wp totaal 13°tilt


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 19-05 21:24

NMe

Quia Ego Sic Dico.

Dan heb ik het toch goed begrepen... Zie slindenau: wat jij wil moet je gewoon niet doen. Je hebt een uniek id voor elk record, daar is veel sneller een matchend record in de andere tabel bij te zoeken dan bij een gebruikersnaam. :X

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 19-05 18:05
Ik adviseer je om een extra kolom aan te maken in de berichtentabel. Daarin zet je dan de username. Dit noemen ze caching. Hierdoor kan je nog steeds alle berichten van een user achterhalen.

  • DutchTux
  • Registratie: April 2003
  • Laatst online: 01-04-2025

DutchTux

Plaatjeloos

Topicstarter
de userid in berichten is zeg maar gekoppelt aan de ID van gebruikers.

A random guy with a Computer.


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 19-05 21:24

NMe

Quia Ego Sic Dico.

DutchTux schreef op 07 november 2004 @ 14:33:
de userid in berichten is zeg maar gekoppelt aan de ID van gebruikers.
Dus? Dat hoort ook zo.....

code:
1
2
3
SELECT message.title, users.name
FROM message INNER JOIN users
ON users.id = message.user_id

Op die manier heb je toch alles opgehaald wat je hebben wil? Je DB is voor opslag, niet voor presentatie. :X

[ Voor 35% gewijzigd door NMe op 07-11-2004 14:36 ]

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • DutchTux
  • Registratie: April 2003
  • Laatst online: 01-04-2025

DutchTux

Plaatjeloos

Topicstarter
NMe84 schreef op 07 november 2004 @ 14:34:
[...]

Dus? Dat hoort ook zo.....

code:
1
2
3
SELECT message.title, users.name
FROM message INNER JOIN users
ON users.id = message.user_id

Op die manier heb je toch alles opgehaald wat je hebben wil? Je DB is voor opslag, niet voor presentatie. :X
Ik wil eigenlijk alleen gebruikernaam de rest hoef ik niet.

Je hebt wel gelijk dat DB voor opslag is bedoelt

A random guy with a Computer.


  • Pinobigbird
  • Registratie: Januari 2002
  • Laatst online: 18:31

Pinobigbird

doesn't share food!

DutchTux schreef op 07 november 2004 @ 14:49:
[...]


Ik wil eigenlijk alleen gebruikernaam de rest hoef ik niet.

Je hebt wel gelijk dat DB voor opslag is bedoelt
:?
Begrijp ik het goed? Jij wilt "alleen gebruikersnaam" in de tabel Berichten?

Dan heb je het antwoord van NMe84 niet begrepen. De query die hij gaf is bedoelt voor de applicatie waarin je de gegevens nodig hebt, en niet een manier om de gebruikersnaam in de tabel Berichten toe te voegen

Joey: Nice try. See the Netherlands is this make believe place where Peter Pan and Tinkerbell come from.
https://kattenoppasleiderdorp.nl
PV: 3080Wp ZO + 3465Wp NW = 6545Wp totaal 13°tilt


  • DutchTux
  • Registratie: April 2003
  • Laatst online: 01-04-2025

DutchTux

Plaatjeloos

Topicstarter
ik ben door NME84 de goeierichting geduwd en heb het antwoord gevonden.

Het is iets van dit:
code:
1
2
3
SELECT messages. * , users.username
FROM messages, users
WHERE messages.userid = users.id


De userid blijft bestaan maar dat is niet zo erg en messchien wel handig om een profiel te halen.
Ik bedank jullie die gepost hebben voor tijd die je hebben ingestokken voor mijn probleem.

A random guy with a Computer.

Pagina: 1