ugrás a tartalomhoz

2 táblából egyszerre lekérdezés

Anonymous · 2006. Már. 19. (V), 14.21
Hogy tudom azt megoldani, hogy egy tábla mezői alapján egy másikból kérdezek le adatokat?

Konkrétan az lenne, hogy van egy 'csapatok' tábla két mezővel: játékos1, játékos2. És van egy 'játékos' tábla aminek van egy 'pontok' mezője.
  1. +-----+----------+----------+  
  2. + NÉV + JÁTÉKOS1 + JÁTÉKOS2 +  
  3. +-----+----------+----------+  
  4. +  A  +    1     +     2    +  
  5. +-----+----------+----------+  
  6. +  B  +    3     +     4    +  
  7. +-----+----------+----------+  
  1. +-----+------+  
  2. + NÉV + PONT +  
  3. +-----+------+  
  4. + P1  +   5  +  
  5. +-----+------+  
  6. + P2  +   8  +  
  7. +-----+------+  
Az kellene nekem, hogy amikor lekérdezem a csapatokat, a csapatok táblában is legyen egy pont mező, ami a 'játékos1' és 'játékos2' mező összegéből keletkezne.

Ezt találtam, amivel meg lehetne oldani szerintem, de nem működik. Pedig már elég sok féle képpen próbáltam:
  1. SELECT * FROM teams  
  2. INNER JOIN players ON teams.player1 = players.id  
  3. INNER JOIN players ON teams.player2 = players.id  
 
1

tábla és mező nevek?

Anonymous · 2006. Már. 19. (V), 14.36
nem derült ki számomra világosan, hogy mik a tábla és mező nevek, úgyhogy ez elsőre biztos nem fog menni, de a szerkezet hasonló lesz:
  1. select  
  2.   csapatnev, (p1.pont+p2.pont) as pontok  
  3. from  
  4.   teams  
  5.   left join players as p1 on player1=p1.id  
  6.   left join players as p2 on player2=p2.id  
gex
2

Próbálkoztam...

Anonymous · 2006. Már. 19. (V), 14.51
Hát próbáltam ezt használni, nem nagyon ment :(

Azért leírom a táblaneveket:
csapatok => teams
versenyzők => players
pontok mező => points
versenyző id => id
csapatnév mező => name
csapatnév id => id

más asszem most nem kell.
3

kipróbáltam

Anonymous · 2006. Már. 19. (V), 17.15
táblák:
teams
 - team_id
 - name
 - player1
 - player2
players
 - player_id
 - point

sql:
  1. select  
  2.   team_id, name, (p1.point+p2.point) as points  
  3. from  
  4.   teams  
  5.   left join players as p1 on player1=p1.player_id  
  6.   left join players as p2 on player2=p2.player_id  
ugyanaz, mint amit elsőre is írtam és tökéletesen működik... /cserélgesd át a mezőneveket a tieidre. azt, hogy a teams táblában mi a játékosok oszlopneve, még most sem tudom./
ha mindkét tábládban id az azonosító, akkor a team_id helyett írj teams.id-t, mert úgy nem tudja eldönteni az sql, hogy melyik id-t kéred. ha még így sem megy, akkor legalább egy hibakódot írhatnál, abból könnyebb rájönni, hogy mi a hiba.

gex
4

Működik

Anonymous · 2006. Már. 19. (V), 18.46
Köszi, tökéletesen működik.