tere taas!
taulu1
id hometeam awayteam
taulu2
id team class
taulu1 sisältää otttelut, jotka päivittyvä automaattisesti netistä ja taulu2 sisältää joukkueelle antamani luokan(a,b,c,d,e).
yritän nytten saada sql kyselyllä aikaan seuraavanlaista kyselyä, jossa yhdistetään nuo kaksi taulua:
hometeam awayteam hclass aclass
Derby Brighton A A
select ottelut.HomeTeam, ottelut.AwayTeam, teams.name, teams.class from ottelut inner join teams ON ottelut.HomeTeam=teams.nimi
en ole varma, onko tämä edes mahdollista suorittaa näin? kokeilin and:llä myös tuohon, mutta palauttaa tyhjää.
e: eli ylläoleva toimii oikein, mutta miten saisin, jotta myös vierasjoukkueelle haetaan tuo luokka tuolta toisesta taulusta. jos siis laitan and
ottelut.AwayTeam=teams.nimi
tulostaa tyhjää.
--Pseudo SELECT column_name(s) FROM table1 INNER JOIN table2 -- tai JOIN table2 ON table1.column_name=table2.column_name;
--Esimerkki SELECT Customers.CustomerName, Orders.OrderID FROM Customers INNER JOIN Orders ON Customers.CustomerID=Orders.CustomerID ORDER BY Customers.CustomerName;
Yleensä taulut ovat relaatiomallin mukaisesti avaimilla kiinni toisissaan, ja avainta käytetään joinissa. Mikään ei estä joinia ilman avaimia, kunhan datatyypit ovat kolumneissa samoja (ottelut.HomeTeam=teams.nimi). Avaimia käyttämällä varmennat sidoksen rivien välillä, ettet esimerkiksi palauta toisesta taulusta rivejä, jotka on alunperin sidottu eri kohderiviin.
Esim ylläolevan mallin mukaisesti, pitäisi olla seuraavanlaisesti
TEAMS - taulu
TeamID Primary key
OTTELUT -taulu
HomeTeamID Foreign key TEAMS taulun TeamID:seen
AwayTeamID Foreign key TEAMS taulun TeamID:seen
select kotijoukkue.name, vierasjoukkue.name, kotijoukkue.class, vierasjoukkue.class from ottelut join teams as kotijoukkue ON ottelut.HomeTeamID=kotijoukkue.TeamID join teams as vierasjoukkue ON ottelut.AwayTeamID=vierasjoukkue.TeamID
Onko mitään, mihin ette tiedä vastausta? tarkoitan, että toimii kuin junanvessa. kiitos groovyb!
Aihe on jo aika vanha, joten et voi enää vastata siihen.