Hvert produkt får jævnligt nye priser så der kan være flere entries i "pri" for hvert entry i "pro". Mit problem er at jeg gerne vil joine disse to tabeller så jeg får alle produkterne ud, men kun een gang hver og med den nyeste pris.
Så vidt jeg forstår burde man kunne lave en sub-select eller joine på "max(pri.time)", men jeg kan ikke rigtig få det til at fungere...
Det er den forkerte måde at gøre det på.. du har en masse redundans i din pri tabel. Er der en speciel grund til at du ikke bare opdaterer det enkelte produkt, istedet for at lave en ny record hver gang
SELECT pro.name,pri1.price FROM pro,pri pri1 WHERTE pro.id=pri1.pro_id AND pri1.time IN (SELECT MAX(pri2.time) FROM pri pri2 WHERE pri2.pro_id=pri1.pro_id)
innercitydk: Ja, der er en speciel grund ti lat jeg ikke bare opdaterer prisen på det enkelte produkt: jeg ønsker at kende historikken i prisudsvingene.
arne_v: Tak, det ser muligt ud, dog får jeg flg. sql-fejl som jeg ikke kan :
#1064 - You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'SELECT MAX(cp1.time) FROM mr_campaign_prices cp1 WHERE cp1.
Min SELECT ser således ud:
SELECT * FROM prices cp, product pro WHERE cp.product_id=pro.id AND cp.time IN ( SELECT MAX(cp1.time) FROM prices cp1 WHERE cp1.product_id=cp.product_id );
Sorry - I min DB hedder tabellerne egentlig noget andet ("prices" og "products"); "prices" tabellen omdøbes til "pri" og "product" tabellen til "pro". Godt set ellers
Hmmm .... Jeg er vidst ikke helt med. Først SELECTe alle de produkter jeg vil vise, for hvert produkt finde MAX(pri.time) så "SELECTe price "WHERE pri.time IN " den max-tid jeg fandt før? Lyder godt nok tungt hvis man har store datamængder...
Sikke noget skidt. Jeg løser det nok via noget php-kode i stedet: JOINer de to tabeller sorteret på pri.time så seneste kommer først og filtrerer produkter fra der har været der een gang før i loopet.
Men tak for hjælpen selvom det ikke blev i een sql som håbet...
tja, det bliver vel ikke bedre ... takker for hjælpen ...
Synes godt om
Ny brugerNybegynder
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.