Autor Zpráva
kodlcan
Profil *
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
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ů.
Toto téma je uzamčeno. Odpověď nelze zaslat.

0