Pereiti prie turinio

Reikia pagalbos su SQL užklausa: JOIN, GROUP, MIN


Rekomenduojami pranešimai

Gal kas gali padėt parašyti vieną užklausą? Googlas nebepadeda...

 

Žodžiu turiu dvi lenteles:

 

products:

- id

- ean

 

products_prices:

- product_id

- portal_id

- price

- price_old

 

 

products_prices lentoje kainos produktams yra kelios ir man reikia išselektinti geriausią kainą kiekvienam produktui, tačiau kartu paimti ir kartu esančius kitus laukus: portal_id (kad būtų aišku kokio portalo kaina tam produktui geriausia) ir price_old

 

Any ideas?

Redagavo upp
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Tai kad nelabai čia veikia šis pavyzdys.

 

Čia neteisingas joinas: "JOIN products_prices ON products.id = products_prices.portal_id"

EDIT: pas mane klaida, trūko product_id aprašyme...

 

Plius:

"products_prices.price = (SELECT MIN(products_prices.price) FROM products_prices)"

Tai čia jis jik traukia pagal vienodas kainas, tai jei visi produktai bus vienodom kainom?

 


SELECT 
products.*,
products_prices.*
FROM products
JOIN products_prices ON products.id = products_prices.portal_id
WHERE products_prices.price = (SELECT MIN(products_prices.price) FROM products_prices)

Redagavo upp
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Tai kad nelabai čia veikia šis pavyzdys.

 

Čia neteisingas joinas: "JOIN products_prices ON products.id = products_prices.portal_id"

EDIT: pas mane klaida, trūko product_id aprašyme...

 

Plius:

"products_prices.price = (SELECT MIN(products_prices.price) FROM products_prices)"

Tai čia jis jik traukia pagal vienodas kainas, tai jei visi produktai bus vienodom kainom?

 

(SELECT MIN(products_prices.price) FROM products_prices LIMIT 1)

Nesvarbu ar vienodos ar ne trauks 1.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Iš 700 produktų toks queris išveda 3 prekes, kurios turi vienodą mažiausią kainą.

 

Man reikia kad išvestų visus produktus, su jų mažiausiom kainom products_prices lentoje, plius išvestų portal_id kurio kainą paėmė.

 

(SELECT MIN(products_prices.price) FROM products_prices LIMIT 1)

Nesvarbu ar vienodos ar ne trauks 1.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Iš 700 produktų toks queris išveda 3 prekes, kurios turi vienodą mažiausią kainą.

 

Man reikia kad išvestų visus produktus, su jų mažiausiom kainom products_prices lentoje, plius išvestų portal_id kurio kainą paėmė.

Zinokis, labai padetu, jeigu tu tvarkingai suformuluotum problema pirmame poste, o ne kai zmones duoda atsakyma i tavo netvarkingai suformuluota klausima ir tu nervinies, kad blogi atsakymai.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Zinokis, labai padetu, jeigu tu tvarkingai suformuluotum problema pirmame poste, o ne kai zmones duoda atsakyma i tavo netvarkingai suformuluota klausima ir tu nervinies, kad blogi atsakymai.

 

Tai pakoregavau kur buvo neteisinga, trūko product_id. Nereikia pykti jei tavo atsakymas neveikia.

Aš pats irgi nelabai nervinuos ;-) laukiu kas galėtų padėti išspręsti galvosūkį.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Tai pakoregavau kur buvo neteisinga, trūko product_id. Nereikia pykti jei tavo atsakymas neveikia.

Aš pats irgi nelabai nervinuos ;-) laukiu kas galėtų padėti išspręsti galvosūkį.

stackoverflow.com žmonės už atsakymus bent reputaciją keliasi, siūlau ten rašyti, nes čia motyvacijos atsakyti mažai.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Atsakymą radau, gal kam pravers:

 

SELECT p.*, pp.*

FROM products p

LEFT OUTER JOIN

(

SELECT product_id, MIN(min_price) AS min_min_price

FROM Products_Prices

GROUP BY product_id

) sub0

ON sub0.product_id = p.id

LEFT JOIN Product_prices pp

ON pp.product_id = sub0.product_id

AND pp.min_price = sub0.min_min_price

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Prisijunkite prie diskusijos

Jūs galite rašyti dabar, o registruotis vėliau. Jeigu turite paskyrą, prisijunkite dabar, kad rašytumėte iš savo paskyros.

Svečias
Parašykite atsakymą...

×   Įdėta kaip raiškusis tekstas.   Atkurti formatavimą

  Only 75 emoji are allowed.

×   Nuorodos turinys įdėtas automatiškai.   Rodyti kaip įprastą nuorodą

×   Jūsų anksčiau įrašytas turinys buvo atkurtas.   Išvalyti redaktorių

×   You cannot paste images directly. Upload or insert images from URL.

Įkraunama...
  • Dabar naršo   0 narių

    Nei vienas registruotas narys šiuo metu nežiūri šio puslapio.

  • Prisijunk prie bendruomenės dabar!

    Uždarbis.lt nariai domisi verslo, IT ir asmeninio tobulėjimo temomis, kartu sprendžia problemas, dalinasi žiniomis ir idėjomis, sutinka būsimus verslo partnerius ir dalyvauja gyvuose susitikimuose.

    Užsiregistruok dabar ir galėsi:

    ✔️ Dalyvauti diskusijose;

    ✔️ Kurti naujas temas;

    ✔️ Rašyti atsakymus;

    ✔️ Vertinti kitų žmonių pranešimus;

    ✔️ Susisiekti su bet kuriuo nariu asmeniškai;

    ✔️ Naudotis tamsia dizaino versija;

    ir dar daugiau.

    Registracija trunka ~30 sek. ir yra visiškai nemokama.

  • Naujausios temos

  • Karštos temos

×
×
  • Pasirinkite naujai kuriamo turinio tipą...