28. juli 2004 - 09:03Der er
13 kommentarer og 1 løsning
Join lidt hjælp
Jeg skal lave et join, som jeg ikke kan få til at virke...
Nedenståedende SQL joiner alle mine tabeller med deres respektive PK og FK
SELECT * FROM Images, ImageTypes, ImageCategories, ProductImages, Products WHERE Images.Type = ImageTypes.Indeks AND ImageTypes.Category = ImageCategories.Indeks AND ProductImages.Image = Images.Indeks AND ProductImages.Product = Products.Indeks
Jeg skal bruge alle ImageTypes, hvor ImageCategories.Name = "Product", også selv om der ikke er et ProductImage med den aktuelle ImageType Altså et eller andet form for oouter join, men jeg kan sq ikke få det til at spille....
SELECT * FROM ((Images JOIN ImageTypes ON Images.Type = ImageTypes.Indeks ) LEFT JOIN ProductImages ON ProductImages.Image = Images.Indeks) LEFT JOIN Products ON ProductImages.Product = Products.Indeks WHERE ImageCategories.Name = 'Product'
SELECT * FROM (((Images JOIN ImageTypes ON Images.Type = ImageTypes.Indeks ) JOIN ImageCategories ON ImageTypes.Category = ImageCategories.Indeks) LEFT JOIN ProductImages ON ProductImages.Image = Images.Indeks) LEFT JOIN Products ON ProductImages.Product = Products.Indeks WHERE ImageCategories.Name = 'Product'
I dit oprindelige spørgsmål var det kun ProductImage der manglede ...
SELECT * FROM (((Images RIGTH JOIN ImageTypes ON Images.Type = ImageTypes.Indeks ) JOIN ImageCategories ON ImageTypes.Category = ImageCategories.Indeks) LEFT JOIN ProductImages ON ProductImages.Image = Images.Indeks) LEFT JOIN Products ON ProductImages.Product = Products.Indeks WHERE ImageCategories.Name = 'Product'
Server: Msg 107, Level 16, State 3, Line 1 The column prefix 'Images' does not match with a table name or alias name used in the query. Server: Msg 107, Level 16, State 1, Line 1 The column prefix 'Images' does not match with a table name or alias name used in the query.
Tja det er umiddelbart også sådan jeg tolker det....
Men det er der altså... Og hvis jeg afvikler din sql i Enterprise Manager, så omformer den koden, og kan sagtens kører den. :(Bare ikke med det rigtige resultat....)
Jeg tror måske at jeg ikke har forklaret mig godt nok....
For hver Products ønsker jeg at få vist en post for hver ImageTypes der er, endvidere skal relationerne mellem Products og ImageTypes (ProductImages/Images) vises såfremt der er nogen.
Jeg har 2 Products (Pro1 og Pro2) Jeg har 3 ImageTypes (imgMain, imgAction, imgThumb) Pro1 har et imgMain og et imgAction Pro2 har et imgMain
Såfremt jeg lave mit join og valgte følgende felter.... SELECT Products.Name AS ProName, Images.Path, ImageTypes.Name AS ItName, ImageCategories.Name AS IcName FROM Yadida JOIN etc...
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.