26. april 2007 - 22:45Der er
2 kommentarer og 1 løsning
JOIN eller lign. Help Please!
Jeg har et problem når jeg joiner 2 tabeller - jeg kan ikke hitte ud af hvordan jeg får det ønskede resultat.
Se nedenstående. Det skulle gerne illustrerer at et produkt har 3 metaværdier tilknyttet i tabel 1. Da jeg senere skal sorter i udtrækket ville jeg gerne kunne joine data'en som nedenstående (ØNSKES).
Tabel 1: - MetaID - MetaVærdi - ProduktID
Tabel 2: - ProduktID
JOIN: Produkt a / metaværdi a Produkt a / metaværdi b Produkt a / metaværdi c Produkt b / metaværdi a Produkt b / metaværdi b Produkt b / metaværdi c osv.
ØNSKES: Produkt a / Metaværdi a / Metaværdi b / Metaværdi c Produkt b / Metaværdi a / Metaværdi b / Metaværdi c osv.
select a.ProductID, b.metavaerdi. c.metavaerdi, d.metavaerdi from tabel1 a, tabel2 b, tabel2 c , tabel2 d where a.productID = b.productID and a.productID = c.productID and a.productID = d.productID and b.metavaerdi < c.metavaerdi and c.metavaerdi < d.metavaerdi order by a.ProductID, b.metavaerdi. c.metavaerdi, d.metavaerdi
(Tabel1) med mine produkter: |ProductID|ProductName|Osv. 1|Korn|.. 2|Brød|..
(Tabel2) med min metadata: |MetaID|Metanavn|ProductID|Osv. 1|MetaTekst1|1 2|MetaTekst2|1 3|MetaTekst3|1 4|MetaTekst1|2 5|MetaTekst2|2 6|MetaTekst3|2 osv.
Ideen er at man kan knytte flere metadata til produktet. Men når jeg joiner de 2 tabeller får jeg 3 produkter med 1 metadata til hver.. (altså det samme produkt 3 gange): JOIN: Produkt a / metaværdi a Produkt a / metaværdi b Produkt a / metaværdi c Produkt b / metaværdi a Produkt b / metaværdi b Produkt b / metaværdi c osv.
Det jeg ønsker at at ved at joine de 2 tabeller får Produktet tilknyttet de antal metadata som findes i tabel2. ØNSKES: Produkt a / Metaværdi a / Metaværdi b / Metaværdi c Produkt b / Metaværdi a / Metaværdi b / Metaværdi c osv.
Mit "mål" med dette er at kunne finde produkter det matcher metatekst. F.eks at finde produkter der matcher "MetaTekst1" -> f.eks 50 produkter. Og finde produkter der matcher både "MetaTekst1" og "MetaTekst2" -> f.eks 10 produkter osv.
SELECT * FROM tabel1 a JOIN tabel2 b ON a.ProduktID = b.ProduktID ORDER BY a.ProductID
Så ville du få alle dine data udprintet sammen: ProduktID - MetaID - MetaVærdi - ProduktID
Så skal du bare sætte din kriterier, dog ville jeg lave det som en stored procedure da jeg kan se du vil lave noget ala en søge funktion :)
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.