karbon
2.10.2003, 08:26:36
Mam tabele:
*NAZWA TABLEI*
ID A B DATA
*WARTOSĆ REKORDU* 1 1 0 15
3 1 1 16
5 1 1 25
2 2 0 20
4 2 2 22
i chciałbym zrobić coś takiego:
1. segregacja rekordów z takim samym A
-1 grupa wszystkie rekordy, co mają takie samo A (czyli dla A=1->ID 1,3,5)
-2 grupa wszystkie rekordy, co mają takie samo A (czyli dla A=2->ID 2,4)
2. segregacja tego co powstało w punkcie 1 wedłóg najnowszej daty (DATA)
chodzi mi o to, żeby posegregować grupę 1 i 2 według najnowszego rekordu:
jako pierwsza będzie grupa 1, bo jest w niej najnowszy rekord (DATA=25),
jako druga gędzie grupa 2, bo jest w niej trochę starszy rekord (DATA=22)
3. segregacja tego co powstało w punkcie 2 wedłóg najstarszego B
chciałbym, żeby w końcowej fazie (po punkcie 3) wyświetlenie rekordów było w takiej kolejności:
ID A B DATA
1 1 0 15
3 1 1 16
5 1 1 25
2 2 0 20
4 2 2 22
Czy ktoś mókłby mi pomóc napisać taki skrypt (ja się z tym męczę już od ponad 3 miesięcy i nic mi sensownego nie wychodzi)?
Pozdrawiam
scanner
2.10.2003, 13:52:16
W czym trzymasz te tabele? W bazie danych?
karbon
2.10.2003, 15:13:53
tak,baza danych MySql
scanner
2.10.2003, 16:54:01
to dajrzesz człowieku jakiegoś dumpa z tabelami i danymi.. chyba nie myślisz, że każdy tu nagle zacznie sam skubac dane, żeby ci pomóc..
karbon
2.10.2003, 17:56:10
CREATE TABLE x (
id int(10) DEFAULT '0' NOT NULL auto_increment,
data datetime DEFAULT '0000-00-00 00:00:00' NOT NULL,
a varchar(11) DEFAULT '0' NOT NULL,
b varchar(11) DEFAULT '0' NOT NULL,
PRIMARY KEY (id)
);
INSERT INTO x VALUES ('1','2003-10-15 11:47:20','1','0');
INSERT INTO x VALUES ('3','2003-10-16 10:31:42','1','1');
INSERT INTO x VALUES ('5','2003-10-25 17:34:25','1','1');
INSERT INTO x VALUES ('2','2003-10-20 14:22:12','2','0');
INSERT INTO x VALUES ('4','2003-10-22 12:50:40','2','2');
uboottd
2.10.2003, 18:52:54
W sumie skomplikowany opis, ale proste zadanie:
[sql:1:d8b12c8c93]
SELECT t1.*, max(t2.data) as md
FROM x as t1, x as t2
WHERE t1.a = t2.a
GROUP BY t1.id
ORDER BY md desc,b
[/sql:1:d8b12c8c93]
Obowiazkowo zaloz sobie index na kolumnie a. Dobrym pomyslem tez bedzie indeks na b, ale to juz trzeba stestowac.
karbon
2.10.2003, 23:43:40
wielkie dzięki
skrypt działa (prawie) prawidłowo - czy mókłbyś mi jeszcze przerobić ten skrypt, żeby sortował razem z b?
uboottd
3.10.2003, 09:03:48
A co rozumiesz pod pojeciem "sortowanie razem z b" ?
karbon
3.10.2003, 12:03:02
nie już nic :oops:
wielkie dzięki za pomoc
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę
kliknij tutaj.