[SQL] meerdere velden met IN

Pagina: 1
Acties:

  • foske
  • Registratie: Juli 2001
  • Laatst online: 26-05 10:03
Het probleem is zo, ik kreeg een melding over een conflict met een sleutel, dus ik ging eens kijken om welke gegeven het gaat. Omdat dit over 700 records ging, vond ik het wat veel om het handmatig langs te lopen :)

Hoe zit het
er is een tabel, met de PK 2 velden, siteID en paginaID, en een andere tabel met PK datum, siteID, paginaID. Er is een relatie tussen de 2 tabellen met siteID en paginaID.

Maar er is dus een conflict met deze relatie.
Nu wil een query als volgt (die fout is, uiteraard, anders was ik er niet, maar die ilustreert denk ik wel het beste wat ik wil)

code:
1
2
3
4
5
6
7
8
select * from log2 
where paginaID, siteID not in (select id, siteID from pagina)

//deze manier geeft niet de directe combinatie siteID & paginaID, 
//maar beide apart, wat ook niet raar is :)
select * from log2 
where paginaID not in (select id from pagina) 
AND siteID not in (select siteID from paginaID)


Wat is dus WEL de manier om meerdere velden te gebruiken bij IN? bedankt.. :Y)

  • P_de_B
  • Registratie: Juli 2003
  • Niet online
Left outer join:

code:
1
2
3
SELECT * FROM log2 L2
LEFT OUTER JOIN  Pagina P ON L2.PaginaId = P.Id AND L2.SiteId = P.SiteId
WHERE P.Id IS NULL


edit: de bedoeling was toch alle records tonen waarvan siteId en PaginaId niet in de tabel pagina voorkomen?

[ Voor 28% gewijzigd door P_de_B op 27-02-2004 11:52 ]

Oops! Google Chrome could not find www.rijks%20museum.nl


  • foske
  • Registratie: Juli 2001
  • Laatst online: 26-05 10:03
Verhip, outer join, had gisteren denk ik toch maar niet zoveel moeten drinken ;) thx