anonīms Posted March 1, 2009 Report Posted March 1, 2009 Kā būtu iespējams izvilkt, lai rāda tikai katru otro datu no db? Quote
codez Posted March 1, 2009 Report Posted March 1, 2009 SELECT * FROM test,(SELECT @a:=0)as t WHERE mod(@a:=@a+1,2)=0 Quote
anonīms Posted March 1, 2009 Author Report 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
codez Posted March 1, 2009 Report 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
anonīms Posted March 1, 2009 Author Report Posted March 1, 2009 The used SELECT statements have a different number of columns Quote
bubu Posted March 1, 2009 Report Posted March 1, 2009 Tur vai tad viss nav uzrakstīts? - Selektē zvaigznīšu vietā vienāda skaita kolonnu no tabulām. Quote
anonīms Posted March 1, 2009 Author Report 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
Gints Plivna Posted March 1, 2009 Report 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
anonīms Posted March 2, 2009 Author Report 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
Gints Plivna Posted March 2, 2009 Report 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
anonīms Posted March 2, 2009 Author Report 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
Gints Plivna Posted March 2, 2009 Report 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
anonīms Posted March 2, 2009 Author Report 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
Gints Plivna Posted March 2, 2009 Report 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
anonīms Posted March 2, 2009 Author Report 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
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.