Avatar billede ieconfig Nybegynder
26. april 2007 - 22:45 Der 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.
Avatar billede bauerdata Nybegynder
26. april 2007 - 23:38 #1
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

Så skulle den ged vist være barberet.
Avatar billede ieconfig Nybegynder
27. april 2007 - 09:03 #2
Det giver ikke ønskede resultat.

(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.
Avatar billede editone Nybegynder
07. maj 2007 - 10:03 #3
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 :)
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester