login  Naam:   Wachtwoord: 
Registreer je!
 Forum

query met join als parameter

Offline HannaH - 04/08/2011 13:30
Avatar van HannaHMySQL interesse Hallo,

Ik heb 3 tabellen

MELK
Mid - soortMelk
BOTER
Bid - soort boter
DOOS
id - parameter - type
parameter: is de id van boter of melk
type: is het type ( of boter(1) - of melk(2) )

hoe hang ik alles aan elkaar ????
iets van select id, parameter, type from DOOS (left join BOTER on (Bid=parameter) where type =1) left join MELK on (Mid=parameter) where type =2) ....
of zoiets ?

4 antwoorden

Gesponsorde links
Offline ArieMedia - 04/08/2011 14:23 (laatste wijziging 04/08/2011 14:24)
Avatar van ArieMedia Gouden medaille

PHP ver gevorderde
Waarom niet 2 tabellen?

- Producten
  1. ID..|Naam.........|Ptype|
  2. 1 |Houdbare melk|1
  3. 2 |Gewone melk |1
  4. 3 |Braadboter |2


- Productypes
  1. ID..|Naam.....|
  2. 1 |Melk |
  3. 2 |Boter |


Alle melk
  1. SELECT p.id, p.naam, t.naam
  2. FROM producten AS p
  3. INNER JOIN productypes AS t ON p.Ptype = t.id
  4. WHERE p.Ptype = 1


Als je de where weghaalt heb je alle producten, die een groep hebben.
Offline Martijn2008 - 04/08/2011 14:42
Avatar van Martijn2008 PHP beginner Ha die Hannah - als ik je goed begrijp kan een doos melk OF boter bevatten? Dit betekent dat er sprake is van een 1 op 1 relatie, waardoor je beide tabellen MELK en BOTER zou kunnen vervangen door tabel Product. Onderstaand mijn uitwerking op SQL Server 2008. Hoop dat dit je verder helpt !

  1. -- Code voor het aanmaken van database HannaH
  2. CREATE DATABASE HannaH
  3.  
  4. -- Code voor het gebruiken van database HannaH
  5. USE HannaH
  6.  
  7. -- Code voor het aanmaken van tabel tblProduct
  8. CREATE TABLE tblProduct
  9. (
  10. ProductID INT NOT NULL PRIMARY KEY IDENTITY,
  11. Soort VARCHAR(50)
  12. )
  13.  
  14. -- Code voor het toevoegen van twee records aan tabel tblProduct
  15. INSERT INTO tblProduct (Soort) VALUES
  16. ('Melk'),
  17. ('Boter')
  18.  
  19. -- Code voor het aanmaken van tabel tblDoos
  20. CREATE TABLE tblDoos
  21. (
  22. DoosID INT NOT NULL PRIMARY KEY IDENTITY,
  23. ProductID INT NOT NULL REFERENCES tblProduct(ProductID) ON UPDATE CASCADE ON DELETE CASCADE
  24. )
  25.  
  26. -- Code voor het toevoegen van een paar dozen met producten aan tblDoos
  27. INSERT INTO tblDoos (ProductID) VALUES
  28. (1),
  29. (2),
  30. (1),
  31. (1)
  32.  
  33. -- De query die je nodig hebt voor het ophalen van de dozen met hun producten
  34. SELECT d.DoosID, p.Soort
  35. FROM tblProduct AS p
  36. INNER JOIN tblDoos AS d
  37. ON (d.ProductID=p.ProductID)
Offline HannaH - 04/08/2011 14:45
Avatar van HannaH MySQL interesse Ik heb ze zo in een dbase aangeleverd gekregen,
maar ik prop ze even in een tabelletje welke nodig en lees ze dan van daar uit met de inner join

thx! :-)

Offline Martijn2008 - 04/08/2011 14:50
Avatar van Martijn2008 PHP beginner Dat betekent dus dat je probleem niet is opgelost? Post anders is 1 record uit tabel DOOS(id, parameter, type) hier.
Gesponsorde links
Je moet ingelogd zijn om een reactie te kunnen posten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.167s