Nyt tarvitaan konkareiden apua, sillä pää alkaa olla riittävän sekaisin kaikista opaskirjoista. Itselle kun on hieman hepreaa nämä erilaiset JOIN-metodit. BTW. käytössä on mysql:n versio 4.0.26, joten ilmeisesti IF lauseet eivät toimi.
http://dev.mysql.com/tech-resources/articles/wizard/print_version.html tämä linkki olisi juuri se mitä nyt haetaan, mutta osaaminen puuttuu.
Alla olevaan tauluun tallennetaan maaleja, joissa on aina maalintekijä, mutta 1. ja 2. syöttäjä voivat olla NULL-arvoja.
Tässä olisi taulu GoalID int(10) unsigned PRI (NULL) auto_increment GoalPlayerID int(10) unsigned MUL 0 GoalMatchID int(10) unsigned MUL 0 GoalSeasonID int(10) unsigned MUL 0 GoalMinute tinyint(3) 0 GoalSecond tinyint(2) unsigned zerofill 00 GoalPenalty tinyint(1) unsigned 0 GoalAssistant1ID int(10) unsigned YES MUL (NULL) GoalAssistant2ID int(10) unsigned YES MUL (NULL) GoalType varchar(255) YES (NULL)
Tämän perusteella pitäisi saada muodostettua pistepörssi koko joukkueen osalta. Pelaajien tiedot haetaan toisesta taulusta, joka on ohessa.
Field Type Null Key Default Extra ----------------- ------------------- ------ ------ ------- -------------- PlayerID int(10) unsigned PRI (NULL) auto_increment PlayerFirstName varchar(255) PlayerLastName varchar(255) PlayerSeasonID int(11) unsigned 0 PlayerPositionID tinyint(1) unsigned 0 PlayerNumber tinyint(3) unsigned 0
Kaikki on PHP:n osalta valmiina, mutta en saa hakua toimimaan...
Tämä on paras mihin olen pystynyt, mutta robleemaksi tulee, että haku huomioi ja laskee vain yhden tietueen tiedot.
SELECT P.PlayerID AS id, CASE WHEN G1.GoalPlayerID THEN COUNT( G1.GoalPlayerID ) WHEN G2.GoalAssistant1ID THEN COUNT( G2.GoalAssistant1ID ) WHEN G3.GoalAssistant2ID THEN COUNT( G3.GoalAssistant2ID ) ELSE 0 END AS points FROM tplss_players P LEFT OUTER JOIN tplss_goals G1 ON G1.GoalPlayerID = P.PlayerID AND LEFT OUTER JOIN tplss_goals G2 ON G2.GoalAssistant1ID = P.PlayerID LEFT OUTER JOIN tplss_goals G3 ON G3.GoalAssistant2ID = P.PlayerID WHERE P.PlayerID IS NOT NULL AND P.PlayerPositionID != '5' GROUP BY id ORDER BY id
Kiitos jo etukäteen kaikille osallistuneille.
Aihe on jo aika vanha, joten et voi enää vastata siihen.