Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: MYSQL/PHP Tiedon järjestäminen

wisekki [09.01.2009 08:25:37]

#

2 taulukkoa, pelaajat ja tapahtumat. Pelaajat taulukossa kentät 'nimi' ja 'ryhmä' (jossa tieto hyökkääjä tai puolustaja). Tapahtumat taulukossa kenttä 'nimi' (yms.) Kuinka saada lajiteltua kaikki 'tapahtumat' -taulukon rivit 'pelaaja' -taulukon ryhmän mukaisesti järkevästi? Eli listata kaikki tapahtumat joiden pelaaja-ryhmä on joko hyökkääjä tai puolustaja.

- AnttiK

Grez [09.01.2009 08:29:37]

#

lainaus:

Eli listata kaikki tapahtumat joiden pelaaja-ryhmä on joko hyökkääjä tai puolustaja.

SELECT t.* FROM tapahtumat t JOIN pelaajat p ON p.nimi=t.nimi WHERE p.ryhmä IN ('hyökkääjä','puolustaja')

En kyllä ymmärrä missä se järjestely tuli kuvioon.

Kannattaa tutustua SELECTin syntaksiin
http://dev.mysql.com/doc/refman/5.0/en/select.html

Rajaaminen onnistuu WHERE ehdot

Järjestely onnistuu ORDER BY kentät joiden mukaan järjestetään

wisekki [09.01.2009 08:37:20]

#

En nopealla vilkaisulla saa tolkkua kuinka tehdä rajaus toisessa taulukossa olevan tiedon perusteella. :(

wisekki [09.01.2009 11:10:28]

#

Nojuu järjestely oli hieman väärä kuvaus. Yritin mysql:n sivuilta ymmärtää tota JOIN komentoa, mutta on kohtalaisen ufo kokonaisuudessaan :D

Sain kuitenkin kokeilemalla toimimaan ihan pelkällä select -lauseella kuten ehdottelit :)

select tapahtumat.nimi, pelaajat.nimi from tapahtumat, pelaajat where tapahtumat.nimi = pelaajat.nimi and pelaajat.ryhma = 'puolustaja';

Ainakin lyhyen testailun mukaan lause hakee tiedot oikein. Tiedä sitten onko tähän järkevämpi tapa.

Grez [10.01.2009 09:12:13]

#

No toihan on ihan tasan sama kysely kuin tuo jonka laitoin, paitsi että
1) JOINin käyttöä suositellaan vaikkakin tietokanta todennäköisesti optimoi tuon sinun (useampi taulu ja yhdistäminen WHEREssä) kyselysi samanlaiseksi JOINia käyttäväksi kyselyksi.
2) sinun kyselysi hakee vain puolustaja ryhmässä olevat, kun taas tuo minun kysely tekee sen mitä pyysitkin, eli hakee kaikki tapahtumat, joiden pelaajan "ryhmä on joko hyökkääjä tai puolustaja"

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta