| Autor | Zpráva | ||
|---|---|---|---|
| kodlcan Profil * |
#1 · Zasláno: 3. 9. 2006, 11:10:32
Mám následující problém (jedná se o mySQL 4.1.12):
Mam dve tabulky. Jedna obsahuje informace o glabalID cislech produktu a jejich jmenech. Druha obsahuje ID produktu, jejich cenu a mnozstvi. Data pro druhou tabulku mam ze sesti pobocek. Vetsina produktu existuje v datech ve vsech sesti pobocek avsak nektere jsou jen v nekterych z nich. Mezi tabulkami je relace product_globalID->product_ID. CREATE TABLE `product_IDs` ( `product_globalID` int(10) unsigned NOT NULL default '0', `product_jmeno` varchar(100) NOT NULL default '', ) ENGINE=MyISAM DEFAULT CHARSET=cp1250; CREATE TABLE `product_office1...6` ( `product_ID` int(10) unsigned NOT NULL default '0', `product_amount` int(11) NOT NULL default '0', `product_price` float unsigned NOT NULL default '0', `product_branchoffice` varchar(100) default '', ) ENGINE=MyISAM DEFAULT CHARSET=cp1250; Ukazkova data muzou potom vypadat nasledovne (sest pobocek naimportovanych do jedne tabulky): 1 PERSIL 30pcs $45 PRAHA2 1 PERSIL 32pcs $43 PRAHA3 1 PERSIL 11pcs $41 PRAHA4 1 PERSIL 4pcs $45 PARDUBICE2 1 PERSIL 40pcs $46 HRADEC KRALOVE 1 PERSIL 10pcs $40 NOVA PAKA 2 AZURIT 22pcs $85 PRAHA2 2 AZURIT 36pcs $83 PRAHA3 2 AZURIT 8pcs $81 PRAHA4 2 AZURIT 8pcs $85 PARDUBICE2 2 AZURIT 6pcs $87 HRADEC KRALOVE 2 AZURIT 98pcs $89 NOVA PAKA ... nebo sest tabulek s daty pro kazdou z nich: products_PRAHA2 1 PERSIL 30pcs $45 2 AZURIT 22pcs $85 products_PRAHA3 1 PERSIL 32pcs $43 2 AZURIT 36pcs $83 products_PRAHA4 1 PERSIL 11pcs $41 2 AZURIT 8pcs $81 products_PARDUBICE2 1 PERSIL 4pcs $45 2 AZURIT 8pcs $85 products_HRADEC KRALOVE 1 PERSIL 40pcs $46 2 AZURIT 6pcs $87 products_NOVA PAKA 1 PERSIL 10pcs $40 2 AZURIT 98pcs $89 Je nejaka moznost jak pomoci jednoho dotazu dosahnout nasledujiciho vysledku: Je jedno jestli z jedne tabulky nebo z druhe varianty (ze sesti tabulek). Pripominam ze nemam mySQL 5 nybrz jen 4.1ku a tudiz nemam k dispozici "ulozene procedury". 1 PERSIL 30pcs 32pcs 11pcs 4pcs 40pcs 10k 45 43 41 45 46 40 2 AZURIT 22pcs 36pcs 8pcs 8pcs 6pcs 98pcs 85 83 81 85 87 89 Jde o to ziskat jednim dotazem radek vzdy pro jeden produkt s cenami a mnozstvimi ze vsech pobocek najednou. Zkousel jsem pouzit GROUP BY ale pak sice mam pro kazdy produkt jeden radek, ale jsem schopen pak delat z poli cena a mnozstvi jen soucty, prumery atd. nikoliv vsak vypsat jednotlive hodnoty pro vsech sest pobocek najednou... Pomuze mi nekdo?? Diky moc. ???? |
||
| Joker Profil |
#2 · Zasláno: 3. 9. 2006, 12:12:32
Tak u šesti tabulek musíte dělat JOIN všech podle ID produktu. U jedné tabulky můžete udělat to samé, akorát JOIN n-krát té samé tabulky podle ID produktu. Akorát to není optimální výkonově, protože kartézským součinem většího množství tabulek strašně zvyšujete počet řádků.
|
||
|
Časová prodleva: 20 let
|
|||
Toto téma je uzamčeno. Odpověď nelze zaslat.
0