![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 13 Pomógł: 0 Dołączył: 1.02.2003 Ostrzeżenie: (0%) ![]() ![]() |
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 |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarząd Postów: 3 503 Pomógł: 28 Dołączył: 17.10.2002 Skąd: Wrocław ![]() |
W czym trzymasz te tabele? W bazie danych?
-------------------- |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 13 Pomógł: 0 Dołączył: 1.02.2003 Ostrzeżenie: (0%) ![]() ![]() |
tak,baza danych MySql
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarząd Postów: 3 503 Pomógł: 28 Dołączył: 17.10.2002 Skąd: Wrocław ![]() |
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..
-------------------- |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 13 Pomógł: 0 Dołączył: 1.02.2003 Ostrzeżenie: (0%) ![]() ![]() |
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'); |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 384 Pomógł: 0 Dołączył: 3.04.2003 Skąd: Chorzow Ostrzeżenie: (0%) ![]() ![]() |
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. |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 13 Pomógł: 0 Dołączył: 1.02.2003 Ostrzeżenie: (0%) ![]() ![]() |
wielkie dzięki
![]() ![]() skrypt działa (prawie) prawidłowo - czy mókłbyś mi jeszcze przerobić ten skrypt, żeby sortował razem z b? |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 384 Pomógł: 0 Dołączył: 3.04.2003 Skąd: Chorzow Ostrzeżenie: (0%) ![]() ![]() |
A co rozumiesz pod pojeciem "sortowanie razem z b" ?
|
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 13 Pomógł: 0 Dołączył: 1.02.2003 Ostrzeżenie: (0%) ![]() ![]() |
nie już nic :oops:
wielkie dzięki za pomoc ![]() ![]() ![]() |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 00:55 |