Help!

PC-Problemen?
De vrijwilligers van Oplossing.be zoeken gratis met u mee!

Hulp bij posten

Recente topics

Auteur Topic: Verschil tussen tabellen  (gelezen 3501 keer)

0 leden en 1 gast bekijken dit topic.

Offline HaRo

  • Lid
  • *
  • Berichten: 22
  • Geslacht: Man
  • Oplossing.be
Verschil tussen tabellen
« Gepost op: 24 september 2005, 22:24:15 »
In een db staan 2 tabellen die elk een veld bevatten waar dezelfde type data in kan staan. Tabel1 bevat veld:TstId en tabel2 bevat veld TstVal. Nu wil ik een query maken die alleen records uit tabel 1 toont die voldoen aan het volgende criterium:

De waarde van 'TstId' is ongelijk aan de waarde van 'TstVal'.

Ik kom er niet uit, wie helpt me opgang.

MvG!
AMD A8-6600K APU met Radeon HD Graphics 4.02 GHz, 8 GB RAM, Windows 10 Home 64-bits
KINGSTON SV300S37A60G SSD 60 GB
Toshiba DT01ACA050 SATA 500 GB
Toshiba MK1237GSX SATA 120 GB

guido1

  • Gast
Re:Verschil tussen tabellen
« Reactie #1 Gepost op: 24 september 2005, 22:43:54 »
Hoi HaRo,

Wat denk je van dit:
Citaat
SELECT Tabel1.tstid
FROM Tabel1 INNER JOIN Tabel2 ON Tabel1.tstid = Tabel2.tstval
WHERE Tabel1.tstid not in (select distinct Tabel2.tstval from tabel2);

Ik heb ook wel een opmerking: Volgens je uitleg zijn de velden tstid en tstval twee dezelfde velden, alleen zitten ze elk in een andere tabel. Het is een goede gewoonte om dezelfde velden ook dezelfde naam te geven door heel je database. Het onderscheid wordt gemaakt door de toevoeging van de tabelnaam.

Je zelf hebt toch ook altijd dezelfde naam?

Guido

Offline HaRo

  • Lid
  • *
  • Berichten: 22
  • Geslacht: Man
  • Oplossing.be
Re:Verschil tussen tabellen
« Reactie #2 Gepost op: 26 september 2005, 15:28:51 »
Guido,

Bedankt voor je reactie, maar je SQL-statement levert niet het gewenste resultaat. Bijgaand een overzicht van de tabellen met de velden en de realties. Er staan in de tabel PbxTb 7 records(lees toestellen) in de tabel ToestelTb staan 6 records(lees ook hier:toestellen). Dan zou jou SQL-statement toch minimaal 1 record moeten opleveren?

MvG,
Hans
AMD A8-6600K APU met Radeon HD Graphics 4.02 GHz, 8 GB RAM, Windows 10 Home 64-bits
KINGSTON SV300S37A60G SSD 60 GB
Toshiba DT01ACA050 SATA 500 GB
Toshiba MK1237GSX SATA 120 GB

Offline powerkite

  • Volledig lid
  • **
  • Berichten: 207
  • Oplossing.be
Re:Verschil tussen tabellen
« Reactie #3 Gepost op: 29 september 2005, 00:44:45 »
Is het misschien mogelijk om die database (of een deel ervan) hier te plaatsen? Mischien dat fouten dan sneller kunnen opgespoord worden.
Ik vermoed dat die INNER JOIN die in de oplossing van Guido zit dat die voor problemen kan zorgen: een gewone INNER JOIN toont enkel records die in beide tabellen voorkomen. maar dat is tegenstrijdig met wat je wil verkrijgen, je wil enkel die er niet in voorkomen. Dus je kan ofwel het JOIN type aanpassen ofwel dat gedeelte gewoon weglaten.

gewoon:
SELECT Tstid
FROM tabel1
WHERE tstid not in (SELECT distinct tstval FROM tabel2)

Ik hoop dat dat de oorzaak was.
mvg
Win XP (pro) - Pentium - 2400Mhz - 512Mb - Hercules 9200se - ADSL - Office 2003 Pro

Offline HaRo

  • Lid
  • *
  • Berichten: 22
  • Geslacht: Man
  • Oplossing.be
Re:Verschil tussen tabellen
« Reactie #4 Gepost op: 29 september 2005, 09:38:45 »
Powerkite,

Je zit in de goede richting. Ik heb inmiddels via een ander forum de oplossing gevonden. De INNER JOIN weg halen gaat niet. Wanneer de INNER JOIN vervangt wordt door LEFT JOIN krijg ik de gevraagde record. In ieder geval bedankt voor je bijdrage.

MvG,
HaRo
AMD A8-6600K APU met Radeon HD Graphics 4.02 GHz, 8 GB RAM, Windows 10 Home 64-bits
KINGSTON SV300S37A60G SSD 60 GB
Toshiba DT01ACA050 SATA 500 GB
Toshiba MK1237GSX SATA 120 GB

Offline powerkite

  • Volledig lid
  • **
  • Berichten: 207
  • Oplossing.be
Re:Verschil tussen tabellen
« Reactie #5 Gepost op: 29 september 2005, 15:45:08 »
Mag in dan vragen welke fout hij zou geven als je die INNER JOIN weglaat? want ik zie dus niet echt in waarom deze er zou moeten staan.
mvg
Win XP (pro) - Pentium - 2400Mhz - 512Mb - Hercules 9200se - ADSL - Office 2003 Pro

Offline HaRo

  • Lid
  • *
  • Berichten: 22
  • Geslacht: Man
  • Oplossing.be
Re:Verschil tussen tabellen
« Reactie #6 Gepost op: 29 september 2005, 16:19:25 »
Dat mag je vragen! Ik heb het overigens niet over een fout gehad, maar gezegd dat het niet gaat.

Wanneer in de output van de querry alleen de velden van de tabel PbxTb getoond moeten worden dan kan de hele regel vanaf INNER JOIN worden weggelaten, maar wanneer ik de querry uitbreid met een veld uit de tabel ToestelTb dan moet de LEFT JOIN er staan anders vraag de querry bij het 'draaien' om input voor het veld uit de tabel ToestelTb dat ik aan de querry heb toegevoegd.

MvG,
HaRo
AMD A8-6600K APU met Radeon HD Graphics 4.02 GHz, 8 GB RAM, Windows 10 Home 64-bits
KINGSTON SV300S37A60G SSD 60 GB
Toshiba DT01ACA050 SATA 500 GB
Toshiba MK1237GSX SATA 120 GB

Offline powerkite

  • Volledig lid
  • **
  • Berichten: 207
  • Oplossing.be
Re:Verschil tussen tabellen
« Reactie #7 Gepost op: 29 september 2005, 22:03:07 »
Maar dit stond niet in de originele vermelding (dat er 2 velden moest getoond worden), als je een ander veld wil toevoegen dan is het idd logisch dat die join er moet staan :-)

mvg
Win XP (pro) - Pentium - 2400Mhz - 512Mb - Hercules 9200se - ADSL - Office 2003 Pro

 


www.combell.com