Jump to content
php.lv forumi

selektot katru otro datu


anonīms

Recommended Posts

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

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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

Link to comment
Share on other sites

`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)
Link to comment
Share on other sites

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???????????????????????????

Link to comment
Share on other sites

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| 1235834189

3 | 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..)?

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...