Hey mensne,

Hoe kan ik in alléén SQL maken dat ik iets selecteer uit een andere tabel?

SELECT * FROM gebruikers WHERE naam = 'topic_starter_uit_andere_tabel'?

MvG,
Niek
is er relatie tussen die tabelle gelegd?
ja, ik moet zeg maar de naam van de topic starter weten, echter word in de forum tabel alleen de user id opgeslagen
select naam
from gebruikers,andertabel
where gebruikers.id = andertabel.id
AND gebruikersnaam = 'blaat'

weet nie cker maar je kunt altijd probere :P

gebruikers.id = andertable.id bedoel de id van die gebruiker die jij op die ander tabel opslaat
Wat je nog vergeet bruno, is dat je bij gebruikersnaam= nog wel aan moet geven van welke tabel die komt:

SELECT gebruikers.naam
FROM gebruikers,andertabel
WHERE gebruikers.id = andertabel.id
AND gebruikers.naam = 'blaat'
je kan ook altijd met joins werken

SELECT gebruikers.*, anderetabel.* FROM gebruikers INNER JOIN anderetabel ON gebruikers.id = anderetabel.gebruikers_id

INNER JOIN = selecteerd enkel rijen die overeenkomsten hebben in beide tabellen
LEFT JOIN = Selecteerd alle rijen uit gebruikers (in dit voorbeeld) en enkel de rijen uit anderetabel die overeenkomen
RIGHT JOIN = Selecteerd alle rijen uit anderetabel (in dit voorbeeld) en enkel de rijen uit gebruikers die overeenkomen
je mag ook een select in een where gebruiken:

SELECT *
FROM gebruikers
WHERE gebruikersid = (SELECT gebruikerid FROM topics WHERE blablabla)

[edit]maar makkelijker is met een join ;-)[/edit]
@Simon: Een subquery is heel wat anders dan een JOIN. Met een JOIN heb je daadwerkelijk een verband in je database zitten. Met een subquery is dat absoluut niet het geval. Het kan dus hele andere resultaten (ongewenste) resultaten opleveren.
ja dat weet ik, maar in dit geval kan het zeker wel!!
Een join is bijna altijd op te lossen met een subquery, zij het dat het misschien wat omslachtig is.
Maar je hebt gelijk, een join is anders en past hier ook veel beter:
SELECT naam FROM gebruikers INNER JOIN andere_tabel ON gebruikers.userid = andere_tabel.userid

Reageren