webForumDet fria alternativet

Använda MIN(foo) utan att SELECT:a MIN(foo)

Databaser & SQLur Databashanterare & SQL

4 svar · 126 visningar · startad av kristoffer

Medlem sedan juni 20001 257 inlägg
Frågan#1

Har tre tabeller:

tblPicture_pic(intId, intOrder)
tblPic_Link_Pro_plp(intId_pic, intId_pro)
tblProduct_pro(intId)

där understrukna attribut är primärnycklar. tblPic_Link_Pro_plp är en många-till-många-tabell.

För varje tblProduct_pro.intId vill jag välja ut den tblPicture_pic.intId som har det lägsta tblPicture_pic.intOrder.

Jag vill välja ut ENDAST tblPicture_pic.intId (eller tblPic_Link_Pro_plp.intId_pic) i SQL-frågan. Jag kan alltså inte använda MIN(intOrder) i frågan.

Medlem sedan dec. 200012 464 inlägg
#2
select pi.picture,po.product
  from tblPicture_pic pi inner join tblPic_Link_Pro_plp lp
  on pi.intId = lp.intid_pic  inner join tblProduct_pro po
 on pl.intId_pro = po.intId
where pl.intId_pic in 
   (select min(intId_pic) from  tblPic_Link_Pro_plp
     where intId_pro = po.intId )
Medlem sedan juni 20001 257 inlägg
#3

Nej, inte så. Jag vill:

1. För varje tblProduct_pro.intId vill jag välja ut den tblPicture_pic.intId som har det lägsta tblPicture_pic.intOrder.

2. Välja ut endast ETT fält (tblPicture_pic.intId) i frågan.

Medlem sedan dec. 200012 464 inlägg
#4

Lite dålig simultankapacitet där

select pi.intID
  from tblPicture_pic pi inner join tblPic_Link_Pro_plp lp
  on pi.intId = lp.intid_pic  inner join tblProduct_pro po
 on lp.intId_pro = po.intId
where pi.intOrder
   (select min(intOrder) from  tblPicture_pic pi2 
     inner join  tblPic_Link_Pro_plp pl2 
     on  pi2.intId = lp2.intid_pic
    where lp2.intId_pro = po.intId)
Medlem sedan juni 20001 257 inlägg
#5

Helt rätt. Tack så mycket för hjälpen.

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