-2

私は3つのテーブルを持っていますplayers positions players_national

player_positonがテーブルに関連付けられている場所をSELECT DISTINCT配置する必要があります。players_nationalplayers

私のテーブルは次のようなものです。

Players Table
-----------------------------------------------------------------------
| player_id         player_name     player_team     player_position   |
-----------------------------------------------------------------------
    1               KAKA                12              1
    2               Ronaldo             7               2
    3               Adriano             10              2



Positions Table
-------------------------------------------------------
| position_id         position_name                   |
-------------------------------------------------------
     1                  Midfield            
     2                  Forward         



Players_national Table
-------------------------------------------------------------------
| player_id             player_team         player_national_team  |
-------------------------------------------------------------------
     1                       12                         4
     2                       7                          4
     3                       19                         4

My Dream output is this
---------------------------------------------------
| player_national_team          position          |
---------------------------------------------------
          4                         1                           
          4                         2                           

私のクエリは次のようなものです。

SELECT DISTINCT players. * , positions. * , players_national. * 
FROM players
LEFT JOIN positions ON positions.position_id = players.player_position
LEFT JOIN players_national ON players_national.player_id = players.player_id
WHERE players_national.player_id = players.player_id AND players_national.player_national_team = 4
4

2 に答える 2

1

すべてのテーブルからすべてを選択すると、すべての行がDISTINCT;になります。SELECTあなたはあなたの条項をあなたがなりたいフィールドだけに制限する必要がありますDISTINCT

SELECT DISTINCT positions.position_id, players_national.player_national_team
FROM            players
                LEFT JOIN positions ON positions.position_id = players.player_position
                LEFT JOIN players_national ON players_national.player_id = players.player_id
WHERE           players_national.player_id = players.player_id AND players_national.player_national_team = 4
于 2012-12-12T01:55:35.300 に答える
0


テーブルplayers_nationalへの結合であるテーブルplayersの個別のplayer_position

SELECT 
  DISTINCT(players.player_position),
  players_national.player_national_team
FROM players INNER JOIN players_national;

結果:

+-----------------+----------------------+
| player_position | player_national_team |
+-----------------+----------------------+
|               1 |                    4 |
|               2 |                    4 |
+-----------------+----------------------+
2 rows in set
于 2012-12-12T02:13:27.983 に答える