MySQL Query kijken of naam bestaat in andere tabel

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Kevin van der Burgt

Kevin van der Burgt

20/10/2010 15:27:24
Quote Anchor link
Hallo,

Is het enigszins mogelijk om met een query (bijv, innerjoin) te controleren of er in een 2e tabel een naam staat. Bijvoorbeeld:

In de tabel gebruikers staan alle gebruikers. En in de tabel ONLINE staan alle gebruikers die momenteel op de website zijn. Is het dan mogelijk om met een query alle gebruikers op te halen die OOK in online staan en de rest niet?
Ik heb wel een manier gevonden om het te doen met 2 query's. Maar wil het liever in 1x doen.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
--- ONLINE ---
ID | NAAM

01 | Kevin
02 | Klaas

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
--- GEBRUIKERS ---
ID | NAAM      | TOKEN

01 | Kevin     | 2346045645
02 | Bert      | 3298972368
03 | Klaas     | 4861836159
04 | Kees      | 8237982709


Iemand enig idee?

Bedankt!
 
PHP hulp

PHP hulp

15/05/2024 04:39:00
 
John D

John D

20/10/2010 15:35:53
Quote Anchor link
select id, naam
from gebruikers
where exists (select id from online where gebruikers.id=online.id)

SQL is een structured query language, je kan bijna je functionele vragen omzetten in SQL: "Geef me alle gebruikers uit tabel gebruikers die ook voorkomen in tabel online".
Hoe moeliijk kan het zijn?
Gewijzigd op 20/10/2010 15:37:13 door John D
 
Kevin van der Burgt

Kevin van der Burgt

20/10/2010 16:32:51
Quote Anchor link
Yessss, helemaal bedankt hiervoor!

Ik was er zelf eigenlijk niet op gekomen om het zo te doen, ik had wel het volgende al geprobeerd:

select id, naam
from gebruikers
where (select id from online where gebruikers.id=online.id)

Maar het gebruik van exists heeft het afgemaakt!
Gewijzigd op 20/10/2010 16:33:09 door Kevin van der Burgt
 
Noppes Homeland

Noppes Homeland

20/10/2010 17:43:33
Quote Anchor link
Je was er dan ook bijna geweest

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
select id
,      naam
from   gebruikers
where  id in (select id
              from   online)


en
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
select g.id
,      g.naam
from   gebruikers g
inner join online o
        on g.id = o.id

Dit verdient overigens niet de schoonheids prijs, de exists zal waarschijnlijk beter performen
Gewijzigd op 20/10/2010 17:46:48 door Noppes Homeland
 
Aad B

Aad B

20/10/2010 20:41:38
Quote Anchor link
EXISTS performed inderdaad beter, geeft true bij de eerste find en beeindigt de zoektocht, IN haalt alle voorkomens op en dat kan bij een grote tabel heftig worden.
De INNER JOIN is ook een goeie oplossing en bijvoorbeeld handig als je ook gegevens uit de online tabel nodig hebt!
 



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.