webForumDet fria alternativet

Om id:t finns i en tabell...

Databaser & SQL

5 svar · 310 visningar · startad av Jesper T

Medlem sedan nov. 20017 144 inlägg
Frågan#1

Jag skulle vilja hämta en person ur en databas om hans id finns i en tabellen access, och att u_username och u_passw stämmer.

tabell user
---------------------
u_id | u_name | u_passw | u_username

tabell access
---------------------
a_id | a_uid

Tips?

Medlem sedan dec. 200012 464 inlägg
#2
select u_id,u_name
from user 
where u_passw = 'Crepert'
and u_username = 'Magdur'
and u_id in (select u_id from access)
Medlem sedan nov. 20017 144 inlägg
#3

Jag antar att det skall vara:

select u_id,u_name
from user 
where u_passw = 'Crepert'
and u_username = 'Magdur'
and u_id in (select [b]a_uid[/b] from access)

Funkar dock ej i mysql....

Medlem sedan mars 20032 667 inlägg
#4

Så här borde du väl kunna göra. Jag vet i fanken om det är det effektivaste sättet, men det borde fungera om jag förstått saken rätt.

select u_id, u_name
from user 
inner join access
on u_id = a_id
where u_passw = 'Crepert'
and u_username = 'Magdur'
and u_id = ????
Medlem sedan nov. 20017 144 inlägg
#5

Vet inte heller om det är rätt. Men det funkade för mitt behov.
/Tack!

Medlem sedan dec. 200012 464 inlägg
#6

Generellt sett så går det inte att skriva om en subselect till en join. I de flesta fall fungerar Jörgens fråga.

284 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
151 ms — hämta tråd, inlägg och bilagor (db)
129 ms — ändringar (db)