webForumDet fria alternativet

Selectsatshjälp sökes!

8 svar · 308 visningar · startad av doggelito

doggelitoMedlem sedan juni 20003 076 inlägg
#1

Behöver hjälp med att få till en selectsats. :)
Utifrån dessa tabeller vill jag få ut Produkt 1 samt Produkt 2.

Hur menar jag då?
Jo:
Produkt 1 samt Produkt 3 ingår i samma grupp och då ska den produkt som har 'Front' =1 väljas.
Produkt 2 ingår ej i en grupp och då ska den också väljas.
Hur ser en sådan sats ut?

Product
------------------------------
Id			Name
1			Produkten 1
2 			Produkten 2
3			Produkten 3

Product_Group
------------------------------
ProductId	GroupId		Front
1			1			1
3			1			0

Group
------------------------------
Id			Name
1			Grupp 1

dbms = sqlserver2000

Jesper TMedlem sedan nov. 20017 144 inlägg
#2

Något sådant hära:

SELECT p.name,g.name FROM Product as p 
LEFT JOIN product_group as pg ON p.id=pg.ProductId
INNER JOIN group as g ON pg.groupid=g.id
doggelitoMedlem sedan juni 20003 076 inlägg
#3

nje, utan att ha testat så kan jag säga att den kommer att hämta Produkt 3 också, det ska den inte göra! :)

NöffMedlem sedan nov. 2003569 inlägg
#4

Nåt sånt här kanske?

SELECT Id,Name FROM Product INNER JOIN Product_Group ON Product.Id=Product_Group.ProductId WHERE Product_Group.Front=1
UNION ALL
SELECT Id,Name FROM Product WHERE Id=2

tohaMedlem sedan dec. 1999707 inlägg
#5
SELECT
    Product.*
FROM 
    Product 
    INNER JOIN 
    Product_Group pg 
    ON 
    Product.Id=pg.ProductId
WHERE 
    pg.Front=1

UNION ALL

SELECT 
    Product.* 
FROM 
    Product 
    LEFT OUTER JOIN 
    Product_Group pg 
    ON 
    pg.ProductId = Product.Id
WHERE 
    pg.ProductId is null
LarsGMedlem sedan dec. 200012 464 inlägg
#6
SELECT Id,Name 
FROM Product 
where id in ( select  ProductId 
from product_group
WHERE front = 1)
UNION all
SELECT Id,Name 
FROM Product  p
WHERE not exists (
  select * 
     from productGroup
    where productid =  p.id)
doggelitoMedlem sedan juni 20003 076 inlägg
#7

Tackar grabbar! :bire
Både din toha och din LarsG verkar ge samma resultat vid en snabb titt på svaren jag får i analyzern så det är väl bara att välja vilken av dem man ska köra på. :)

LarsGMedlem sedan dec. 200012 464 inlägg
#8

Det beror på hur du vill att det skall fungera om en produkt ingår i flera grupper.

doggelitoMedlem sedan juni 20003 076 inlägg
#9

aha, på så vis.
svaret är nej, en produkt kan inte ingå i flera grupper.

130 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)