Tabellen vergelijken

Pagina: 1
Acties:

  • Steam
  • Registratie: Juli 2001
  • Laatst online: 26-11-2021

Steam

just getting there

Topicstarter
Ik gebruik PHP4 en MySQL.
Ik heb Gereedschappen in een tabel Prod met een identificatie nr. GID.
Om de Gereedschappen in te delen in Hobby's is er een Hobs, met Hobbynamen en ident. HID.
Om de hobby's en de Gereedschappen te koppelen is er een opzoektabel: Gzh(=Gereedschapzoekhobby) met colommen GID en HID.
Hetzelfde gebeurt met cattegorieën: Cats (Catnaam, CID) en Gzc(GID,CID)

Nu wil ik een selectie maken uit de Gereedschappen door een categorie en een hobby in te geven, maar dan kunnen er kombinaties worden ingevuld waar geen Gereedschappen bij bestaan. Da's onhandig, daarom heb ik bedacht een tabel te genereren, iedere keer als er weer wat nieuwe Gereedschappen zijn toegevoegd, die de Categorieën aan de Hobbys koppelt in een kombinatie die wèl bestaat. Door deze tabel te gebruiken bij het zoeken van gereedschap, kom je altijd op een bestaande selectie uit.
Deze heet dan : Hzc (=Hobzoekcat) met natuurlijk de kolommen HID,CID.

Ik kan heel makkelijk alle kombinaties van HID en CID in de opzoek tabellen vinden met:

SELECT DISTINCT CID,HID FROM Gzh, Gzc WHERE Gzh.GID=Gzc.GID
en deze vervolgens toevoegen aan de tabel Hzc.

Nu komt mijn vraag:
Om kombinaties van CID en HID te zoeken die niet meer voorkomen in tabellen Gzh en Gzc, maar nog wel in Hzc, dacht ik eerst alle bestaande combinaties te zoeken, zoals hierboven, en vervolgens alle bestaande combinaties in Hzc. Dan wil ik die twee vergelijken, en alle combinaties die wèl in Hzc staan, maar niet uit bovenstaande Select-statment volgen, uitfilteren, en vervolgens uit de Hzc tabel verwijderen.

Hoe doe ik dat zo efficiënt mogelijk, dus met zo min mogelijk herhaalde SQL-statements?

Nobody knows nothing... some of us just know very little


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

dusty

Celebrate Life!

Prima voorbeeld waarom MYSQL zo snel mogelijk Foreign Keys moet Inbouwen.

Kunnen er ook weer leuke vragen gesteld worden waarom bepaalde dingen niet werken omdat ze geen barst begrijpen van SQL.

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


  • Steam
  • Registratie: Juli 2001
  • Laatst online: 26-11-2021

Steam

just getting there

Topicstarter
Als je bedoelt te zeggen dat ik zo stom ben mag je dat ook gewoon doen hoor. Maar waar was zo'n forum nou voor? :?

Nobody knows nothing... some of us just know very little