anonīms Posted March 1, 2009 Report Share Posted March 1, 2009 Kā būtu iespējams izvilkt, lai rāda tikai katru otro datu no db? Quote Link to comment Share on other sites More sharing options...
codez Posted March 1, 2009 Report Share Posted March 1, 2009 SELECT * FROM test,(SELECT @a:=0)as t WHERE mod(@a:=@a+1,2)=0 Quote Link to comment Share on other sites More sharing options...
anonīms Posted March 1, 2009 Author Report Share Posted March 1, 2009 hm, kaut kas īsti nesanāk. mysql_query("(SELECT id, kas_spele, pret_ko_spele, iesisti, ielaisti, turnira_id, time, 1 AS tips FROM bliezam_1_tipa_speeles, (SELECT @a:=0)as t) UNION (SELECT id, kas_spele, pret_ko_spele, iesisti, ielaisti, turnira_id, time, 2 AS tips FROM bliezam_2_tipa_speeles) WHERE mod(@a:=@a+1,2)=0 ORDER by time DESC LIMIT 5") or die(mysql_error()); sintakses errors Quote Link to comment Share on other sites More sharing options...
codez Posted March 1, 2009 Report Share Posted March 1, 2009 SELECT * FROM (SELECT * FROM test1 union Select * from test2) as t1,(SELECT @a:=0) as t2 WHERE mod(@a:=@a+1,2)=0 Quote Link to comment Share on other sites More sharing options...
anonīms Posted March 1, 2009 Author Report Share Posted March 1, 2009 The used SELECT statements have a different number of columns Quote Link to comment Share on other sites More sharing options...
bubu Posted March 1, 2009 Report Share Posted March 1, 2009 Tur vai tad viss nav uzrakstīts? - Selektē zvaigznīšu vietā vienāda skaita kolonnu no tabulām. Quote Link to comment Share on other sites More sharing options...
anonīms Posted March 1, 2009 Author Report Share Posted March 1, 2009 Tāpat tiek izvadīti visi dati.. SELECT * FROM (SELECT id, kas_spele,pret_ko_spele, iesisti, ielaisti, turnira_id, time, 1 AS tips FROM bliezam_1_tipa_speeles union Select id, kas_spele, pret_ko_spele, iesisti, ielaisti, turnira_id, time, 2 AS tips FROM bliezam_2_tipa_speeles ) as t1,(SELECT @a:=0) as t2 WHERE mod(@a:=@a+1,2)=0 ORDER BY time DESC LIMIT 5 Ir tā, ka rezultātos ir divi dati speletajs1 vs speletajs2 5:0 un speletajs2 vs speletajs1 0:5. Quote Link to comment Share on other sites More sharing options...
Gints Plivna Posted March 1, 2009 Report Share Posted March 1, 2009 Hmm, varbūt labāk iedod piemērus saviem datiem un tam ko gribi dabūt ārā. Jo pašlaik vismaz man nav saprotams, kāpēc vispirms ieraksti ir jāapvieno ar UNION un pēc tam jāmēģina liekie izkasīt ārā, jo man izskatās, ka pietiktu vienkārši datus lasīt no vienas tabulas un viss būtu ok. Gints Plivna http://datubazes.wordpress.com Quote Link to comment Share on other sites More sharing options...
anonīms Posted March 2, 2009 Author Report Share Posted March 2, 2009 Vnk ir 2 tabulas, kur glabājas rezultāti 1 tabula ir grupu spēlēm, otrā tabula ir izslēgšanas spēlēm. Quote Link to comment Share on other sites More sharing options...
Gints Plivna Posted March 2, 2009 Report Share Posted March 2, 2009 OK tātad šie dati nepārklājas, ja? Bet kas tad pārklājas? t.i. kā tie dati izskatās tabulās, ka sanāk tā, ka pārklājas? Gints Plivna http://datubazes.wordpress.com Quote Link to comment Share on other sites More sharing options...
anonīms Posted March 2, 2009 Author Report Share Posted March 2, 2009 `id` int(11) NOT NULL auto_increment, `turnira_id` int(11) NOT NULL default '0', `grupas_id` smallint(6) NOT NULL default '0', `kas_spele` int(11) NOT NULL default '0', `pret_ko_spele` int(11) NOT NULL default '0', `iesisti` smallint(6) NOT NULL default '0', `ielaisti` smallint(6) NOT NULL default '0', `punkti` smallint(6) NOT NULL default '0', `uploadots` tinyint(1) NOT NULL default '0', `OT` int(1) default '0', `time` int(20) NOT NULL default '0', PRIMARY KEY (`id`) 1_tipa_speeles (Grupu rezultāti)`id` int(11) NOT NULL auto_increment, `turnira_id` int(11) NOT NULL default '0', `kas_spele` int(11) NOT NULL default '0', `pret_ko_spele` int(11) NOT NULL default '0', `tips` smallint(6) NOT NULL default '0' COMMENT 'finals/ pusfinals/ 4finals...', `iesisti` smallint(6) NOT NULL default '0', `ielaisti` smallint(6) NOT NULL default '0', `uzvara` tinyint(4) NOT NULL default '0', `uploadots` tinyint(4) NOT NULL default '0', `time` int(20) NOT NULL default '0', PRIMARY KEY (`id`) 2_tipa_speeles (Izslēgšanas rezultāti) Quote Link to comment Share on other sites More sharing options...
Gints Plivna Posted March 2, 2009 Report Share Posted March 2, 2009 (edited) kā tie dati izskatās tabulās? P.S. paskaidroju: Dati tas ir ieraksti. Man nevajag reālos man vajag testa datus, kas Tev ģenerē pārklājošus rezultātus, ko Tu gribi attēlot. Edited March 2, 2009 by Gints Plivna Quote Link to comment Share on other sites More sharing options...
anonīms Posted March 2, 2009 Author Report Share Posted March 2, 2009 id: 145 turnira_id: 15 kas_spele: 1 pret_ko_spele: 15 tips: 1 iesisti: 2 ielaisti: 5 uzvara: 1 OT: 1 time: time() uploadtos: 1 Quote Link to comment Share on other sites More sharing options...
Gints Plivna Posted March 2, 2009 Report Share Posted March 2, 2009 Kaut vai pakaries, bet nesaprotu kā no šāda viena ieraksta ar faktiski SELECT * FROM table var uzģenrēt 2 :O Tu no manis kaut ko slēp. Labi es saprotu, ka šitā mēs nekur netiksim. Tātad plz izlasi Kā uzdot saprātīgu jautājumu it sevišķi DBVS specifiskās lietas 3 punkts. Ilustrācija pareizajam scenārijam: Persona X jautā: Man ir tabula A: CREATE TABLE A (A NUMBER); Tabulā A ir šādi ieraksti: INSERT INTO a VALUES (1); INSERT INTO a VALUES (2); INSERT INTO a VALUES (1); Jautājums kā dabūt tā, lai iegūtu tikai unikālos kolonas A ierakstus. 1 2 Personai Y, kas grib atbildēt uz šo jautājumu, nav jāmežģa galva, jātērē savs dārgais laiks tabulas izveides un insert teikumu izveidošanai, nav jāmēgina saprast un ar stangām izvilkt ārā, kadi ir tabulas dati un ko grib dabūt ārā. Persona Y saprot šo jautājumu, savā testa vidē fiksi uzrauj šo tabulu un saprot, ka rezultātu var iegūt ar šādu SQL teikumu: SQL> SELECT DISTINCT a FROM a; A ---------- 1 2 Vai tiešām ir tik grūti iejusties personas Y lomā un atvieglot tai darbu, lai nebūtu 17 reizes jāmēģina izvilkt ar stangām ārā ko Tu gribi panākt??????????????????????????? Quote Link to comment Share on other sites More sharing options...
anonīms Posted March 2, 2009 Author Report Share Posted March 2, 2009 Tātad, sākšu visu no jauna. Ir 2 tabulas: 1) 1_tipa_speeles (Grupu rezultāti) `id` int(11) NOT NULL auto_increment,`turnira_id` int(11) NOT NULL default '0', `grupas_id` smallint(6) NOT NULL default '0', `kas_spele` int(11) NOT NULL default '0', `pret_ko_spele` int(11) NOT NULL default '0', `iesisti` smallint(6) NOT NULL default '0', `ielaisti` smallint(6) NOT NULL default '0', `punkti` smallint(6) NOT NULL default '0', `uploadots` tinyint(1) NOT NULL default '0', `OT` int(1) default '0', `time` int(20) NOT NULL default '0', PRIMARY KEY (`id`) 2) 2_tipa_speeles (Izslēgšanas rezultāti) `id` int(11) NOT NULL auto_increment,`turnira_id` int(11) NOT NULL default '0', `kas_spele` int(11) NOT NULL default '0', `pret_ko_spele` int(11) NOT NULL default '0', `tips` smallint(6) NOT NULL default '0' COMMENT 'finals/ pusfinals/ 4finals...', `iesisti` smallint(6) NOT NULL default '0', `ielaisti` smallint(6) NOT NULL default '0', `uzvara` tinyint(4) NOT NULL default '0', `uploadots` tinyint(4) NOT NULL default '0', `time` int(20) NOT NULL default '0', PRIMARY KEY (`id`) update kveriji un pievienošanas kveriji: 1) Select query, kas domāts pēdējo rezultātu izvadīšanai (Gan no 1_tipa_speeles, gan no 2_tipa_speeles (abas vienā while)) Kverijs ir jau pārrakstīts pēc šeit dotajiem paraugiem. SELECT * FROM (SELECT id, kas_spele,pret_ko_spele, iesisti, ielaisti, turnira_id, time, 1 AS tips FROM bliezam_1_tipa_speeles union Select id, kas_spele, pret_ko_spele, iesisti, ielaisti, turnira_id, time, 2 AS tips FROM bliezam_2_tipa_speeles ) as t1,(SELECT @a:=0) as t2 WHERE mod(@a:=@a+1,2)=0 ORDER BY time DESC LIMIT 5 2) update query, kurš atrodas administrācijas panelī vietā, kur tiek pievienoti spēļu rezultāti. (Rezultāti tiek izveidoti, kad sākas turnīrs) * Teiksim ir izspēlēta spēle, kur spēlēja Juris (id: 1) pret Anna (id:2), un Juris uzvarēja ar rezultātu 1:0 $time = time(); UPDATE 1_tipa_speeles SET iesisti = 1, ielaisti = 0, punkti = 2, uploadots = 1, time = $time WHERE kas_spele = 1 AND pret_ko_spele = 2 AND turnira_id = 15 UPDATE 1_tipa_speeles SET iesisti = 0, ielaisti = 1, punkti = 0, uploadots = 1, time = $time WHERE kas_spele = 2 AND pret_ko_spele = 1 AND turnira_id = 15 Pēdējie dati no datubāzes. id | turnira_id | kas_spele | pret_ko_spele | iesisti | ielaisti | punkti | uploadots | time 4 | 15 | 4 | 5 | 13 | 0 | 2 | 1| 12358341893 | 15 | 5 | 4 | 0 | 13| 0 | 1| 1235834189 2 | 15 | 1 | 2 | 1 | 0 | 2 | 1| 1235834188 1 | 15 | 2 | 1 | 0 | 1 | 0 | 1| 1235834188 * Pēdējie 2 ir no dotā varianta Juris vs Anna Un tagad, mans jautājums. Kā izveidot tā, lai no datubāzes izvelk tikai rezultātus ar ID: 2 un 4 (u.t.t..)? Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.