[PHP/MySQL] Van ene tabel naar andere tabel zoeken

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • MrDummy
  • Registratie: April 2000
  • Laatst online: 25-07 12:00

MrDummy

Nog steeds gek op anime...

Topicstarter
Misschien wel erg eenvoudige vraag maar ik vraag toch maar even:

Code voorbeeld:
code:
1
2
3
4
5
6
7
// id pakken uit ene tabel
$sql=mysql_query("SELECT userinfo FROM b_users WHERE userid='$id'");
list($userinfo)=mysql_fetch_row($sql);

// dan info pakken uit andere tabel
$sql=mysql_query("SELECT naam FROM b_userinfo WHERE id='$userinfo'");
list($naam)=mysql_fetch_row($sql);


Zoals je mag zien ga ik eerst via ene tabel de id nummer pakken van andere tabel (een link naar andere tabel) om vervolgens daar gegevens te pakken.
De code boven is beetje dubbelop.

Ik vraag me af hoe de mysql zoek code boven korter kan, dus in 1 regel. Is dat met
WHERE b_user.userinfo='$id'
of iets anders?

Het is eenvoudige voorbeeld tussen meerdere tabellen die nauw met elkaar gekoppeld zijn.

Acties:
  • 0 Henk 'm!

  • JeRa
  • Registratie: Juni 2003
  • Laatst online: 30-04 10:28

JeRa

Authentic

Waarom roept iedereen meteen subqueries tegenwoordig terwijl dit een simpele join is? :(

SELECT b_userinfo.naam FROM b_userinfo, b_users WHERE b_userinfo.id = b_users.userinfo AND b_users.userid = '$id'

[ Voor 19% gewijzigd door JeRa op 09-11-2005 18:21 ]

ifconfig eth0 down


Acties:
  • 0 Henk 'm!

  • kmf
  • Registratie: November 2000
  • Niet online

kmf

Met inner joins ook lekker snel? (dacht dat inner joins beter geoptimaliseerd wordt dan uit 2 tabellen tegelijkertijd selecteren)


SELECT u.userinfo, i.naam FROM b_users u
inner join b_userinfo i on u.id=u.userinfo
WHERE u.userid='$id'

One thing's certain: the iPad seriously increases toilet time.. tibber uitnodigingscode: bqufpqmp


Acties:
  • 0 Henk 'm!

  • MrDummy
  • Registratie: April 2000
  • Laatst online: 25-07 12:00

MrDummy

Nog steeds gek op anime...

Topicstarter
Dat lijkt makkelijker dan subqueries die genested ( ) zoekopdrachten maakt net als if commando.
Het ziet er ook minder geweldig en overzichtelijk uit.
Btw, ik heb nog niet mysql 5 erop zitten :>

De code van JeRa ziet er meest eenvoudig uit :)

[ Voor 12% gewijzigd door MrDummy op 09-11-2005 18:28 ]


Acties:
  • 0 Henk 'm!

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
Je kan beter de manier van athlonkmf gebruiken. De andere manier is de verouderde manier van joinen.

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”

Pagina: 1