O SQLu znam malo do nimalo, ali pokušavam ponešto da odradim i da naučim. Imam sledeće problemče. U tabeli za primer:
CREATE TABLE `lokacije` (
`lokacija` varchar(10) NOT NULL DEFAULT 'lokacijaX',
`kutija` varchar(10) NOT NULL DEFAULT 'kutijaX'
);
INSERT INTO `lokacije`
(`lokacija`,`kutija`)
VALUES
('lokacija1','kutija11'),
('lokacija1','kutija12'),
('lokacija1','kutija13'),
('lokacija2','kutija21'),
('lokacija2','kutija22'),
('lokacija2','kutija23'),
('lokacija3','kutija31'),
('lokacija3','kutija32'),
('lokacija3','kutija33');
Pokušavam jednim SELECT upitom da dobijem nešto ovakvo:
lokacija | spisak
---------------------------------------------
lokacija1 | kutija11,kutija12,kutija13
lokacija2 | kutija21,kutija22,kutija23
lokacija3 | kutija31,kutija32,kutija33
Dakle, potreban mi je za svaku pojedinačnu lokaciju - jedan string koji će sadržati sve kutije koje su na njoj trenutno smeštene. Pokušao sam sa višestrukim JOIN-om, sa i bez ON, ali uglavnom dobijam zlo od upita koji traje ohoho i ne daje šta treba. GROUP BY takođe ne pomaže ili ga ne koristim kako valja. Problem je što za svaku lokaciju broj kutija varira i može ih biti do 15, a nekako intuitivno osećam da petnaestostruki JOIN tabele sa samom sobom verovatno nije baš pravi put do rešenja :) Sve u svemu, malo sam se pogubio u upitima koje sam probao, što samostalno što skrpljenih sa stackoverflow, pa bi mi značila pomoć.
Inače, prava tabela sa kojom radim je relativno mala, ~15k redova, pritom je ćopava i bez indeksa, ali ne tražim trenutno neko megaoptimalno rešenje, ovo će se izvršiti jednom i više nikada, tako da što se mene tiče upit može da trči i pola sata samo ako dobijem na kraju šta mi treba.
Hvala svima unapred, svaka pomoć je dobrodošla.