va as panasia minti turejau is pradziu, tik norejau apsieiti be papildomos celes lentoj, o viska padaryti on the fly, taciau ten kazkas nesigavo, tai nusprendziau ieskoti atsakymo toliau, nes norejosi tiketi, kad yra paprastesnis budas:) kreipiausi i kita forumjuka, tai atsakymas atrodo taip paprastai, kad net juokas sujame :D bet, kaip sako, tobula tai, kas paprasta :D kam idomu: SELECT i2.order_id FROM order_items i1 RIGHT OUTER JOIN order_items i2 ON i2.item_id = i1.item_id AND i2.quantity = i1.quantity AND i1.order_id = X WHERE i2.order_id != X GROUP BY i2.order_id HAVING COUNT(i1.order_id) = COUNT(*) AND COUNT(i1.order_id) = (SELECT COUNT(*) FROM order_items WHERE order_id = X) "Jornada Del Muerto" <Jornada@Lythum.lt> wrote in message news:j1r8lh$o9l$1@trimpas.omnitel.net... > Sveiks, > > Siaip senai su MySQL dirbes, daugiau su MSSQL, tai net idomu kaip > atsakys kazkas i si klausima, nes uzduotis sudetinga :) neaisku ar cia > galutinis poreikis, nes gal eitu kazkaip kitaip tai padaryti. > > Jeigu man butu toks poreikis traukineti tokias analogijas, eiciau > lengviausiu keliu, t.y. sukuriant papildoma lauka orders lentoje, arba jei > to retai reikia sukurti nauja lenta su: > > TblOrdersInfo > --- > id, > order_id, > order_hash varchar(1024) <- jei irasu daug tai nekenktu ji ir indeksuot > > Zodziu esme naujame lauke: order_hash varchar(1024) si hash lauka tektu > pildyti sukurus uzsakyma su prekemis arba redaguojant si uzsakyma - > pakeiciant jam priklausancias prekes, tai galetu buti kazkokia funkcija > tiesiog. Esme tame lauke rasai taip: > > [prekesId]:[kiekis].[prekesId]:[kiekis].[prekesId]:[kiekis].[prekesId]:[kiekis].ir > t.t... > > Labai svarbu kad prekiuID butu surusiuoti formuojant sia eilute, pvz > visada nuo maziausio iki didziausio. tada gautum unikalia kiekvienam > uzsakymui eilute su ju prekiu id ir kiekiais, pvz.: > > 112:10.1355:5.55:5. ir t.t... aka: > Preke_A_id:preke_A_kiekis.preke_B_id:prekeBKiekis. > > Turint tokia informacija laisvai issitrauktum ka nori ar visus tokius pat > uzsakymus su tokiu pat komplektu prekiu nes tikslus prekiu komplektas butu > surasytas vienoje eiluteje: > > SELECT * > FROM > orders > WHERE > order_hash = atitinkamo order naujo lauko reiksme > And id != orderio kurio nereik id > > Jei tai viena uzklausa istraukt reik tai tada butu pvz.: > > SELECT * > FROM > orders o > WHERE > order_hash in (Select order_hash from orders where id = > !orderio_id!) > And id != !orderio_id! > > Tiesa pavyzdzius rasiau MSSQL sintakse, bet kazkas panasaus turetu buti > MySQL > > O uzsakymams tada tektu sukurt kazkokia funkcija, nezinau kuo ten > programuoji, php ar kuo kitu ar tiesiog procedura kuri istraukia kiekvieno > uzsakymo visas prekes surusiavus prekiu_id ASC ir craftina is ju > atitinkamo formato string'a ir ji iraso prie uzsakymu ar papildomos > lentos, ziurint kaip darysi. tada i funkcijas kurie kuria ar keicia > uzsakymus tektu ideti sios funkcijos kvietima. > > Manau kitu atveju uzsiknisi, o toks dalykas tai palengvintu, jei to reikia > retai tai geriau det atskiroje lentoje. > > JDM. > > > > > "taikaika" <aaaaaa@bbbb.lt> wrote in message > news:j1p0gg$8av$1@trimpas.omnitel.net... >> labas, >> >> turiu 2 lenteles: >> 1. orders (id) >> 2. order_items (id, order_id, item_id(prekes id is kitos lentos), >> quantity) >> >> tarkim turiu uzsakyma X, kuris turi prekes A -1 vnt, B - 2 vnt, C - 1 vnt >> >> man reiketu surasti is visos orders lentos tuos uzsakymus, kurie turi tas >> pacias prekes ir toki pati ju skaiciu, aisku, praleidziant uzsakyma X. >> >> patarkit, prasau, kaip iveikt sia uzduoti :) >> >>