Toon posts:

[SQL] twee tabellen vergelijken en dubbele records weergeven

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

Verwijderd

Topicstarter
Ik wil twee boekencollecties met elkaar vergelijken en alle boeken selecteren die in beide databases voorkomen. Hieronder een kleine greep uit beide tabellen:

code:
1
2
3
4
5
6
7
DBPiet:

ID  | titel                     | schrijver
----+---------------------------+--------------
545 | Gifsla                    | Jan Wolkers
546 | Groeten van Rottumerplaat | Jan Wolkers
547 | De walgvogel              | Jan Wolkers
code:
1
2
3
4
5
6
7
DBJan:

ID | titel                     | schrijver
---+---------------------------+--------------
56 | Groeten van Rottumerplaat | Jan Wolkers
57 | Mondriaan op Mauritius    | Jan Wolkers
58 | Werkkleding               | Jan Wolkers


Nu wil ik dus een sql-query die de titels uit beide tabellen bekijkt en als resultaat alle boeken met dezelfde titel geeft. In dit voorbeeldje dus alleen "Groeten van Rottumerplaat". (ik weet eigenlijk niet of dat uberhaupt mogelijk is :? )

  • Neman
  • Registratie: September 2000
  • Laatst online: 19-08 14:07

Neman

Een uit de lucht gegrepen naam

Natuurlijk is dit mogelijk:
code:
1
2
3
SELECT DISTINCT P.titel
FROM DBPiet P
WHERE P.titel IN (SELECT DISTINCT J.titel FROM DBJan J);

[ Voor 40% gewijzigd door Neman op 07-04-2003 01:01 ]


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

dusty

Celebrate Life!

Zonder subquery:
code:
1
2
3
4
5
6
7
8
9
SELECT DISTINCT 
  P.titel
FROM 
  DBPiet P, 
  DBJan J
WHERE
  P.TITEL=J.TITEL
AND
 P.schrijver=J.schrijver

Niet vergeten op titel EN schrijver te controleren, soms zijn er boeken met dezelfde titel maar van verschillende schrijvers (het komt voor!)

Voor de rest is dit erg standaard SQL en raad ik je toch echt aan om een manual over SQL te lezen.

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


Dit topic is gesloten.