Toon posts:

[sql] join omgekeerd selecteren

Pagina: 1
Acties:
  • 55 views sinds 30-01-2008

Verwijderd

Topicstarter
ok ik zit met een standaart sql probleem

personen
-----
persid
persnaam
-----

personenrechten
-----
persid
moduleid
-----

modules
-----
id
naam
-----

Nu wil ik van modules de naam selecteren van de modules die nog niet gekoppeld worden aan de personen,

nu heb ik dit

SELECT modules.naam, modules.id
FROM modules
LEFT JOIN CS_modulerights ON ( modules.id= personenrechten.moduleid)
WHERE personenrechten.persid = '1'

maar daar kijkt hij naar personenrechten welke hij wel heeft

SELECT modules.naam, modules.id
FROM modules
LEFT JOIN CS_modulerights ON ( modules.id= personenrechten.moduleid)
WHERE personenrechten.persid != '1'

laat hij zien welke de andere personen wel hebben.. maar dat interesseert me dus niet, weet iemand hoe ik dit moet oplossen?

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 17-08 23:56

Janoz

Moderator Devschuur®

!litemod

Dit is exact hetzelfde 'probleem' als in [rml][ SQL] Query probleem[/rml] .

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Verwijderd

Topicstarter
Ja dat klopt, maar ik gebruik wel mysql, dus kan geen subqueries doen

Verwijderd

SELECT modules.naam, modules.id
FROM modules
LEFT JOIN CS_modulerights ON ( modules.id= personenrechten.moduleid)
WHERE personenrechten.persid != NULL

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

where NOT ... IS NULL zal beter werken dan ;)

Maar dat is onzin om dat zo te selecteren, doe dan gewoon een inner join

Ik denk dat het meer zoiets zal moeten zijn:
select modules.id, count( * ) as count from modules left join modulesrights on ... group by modules.id having count = 0;

  • dusty
  • Registratie: Mei 2000
  • Laatst online: 21-02 00:06

dusty

Celebrate Life!

Verwijderd schreef op 12 juni 2003 @ 13:21:
Ja dat klopt, maar ik gebruik wel mysql, dus kan geen subqueries doen
En in het andere topic staat ook de oplossing.

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR

Pagina: 1

Dit topic is gesloten.