Хотя предложенный метод Гордона будет работать хорошо, при условии, что в команде не более двух игроков, метод не работает, если вы добавите другого члена команды и захотите отобразить их в отдельной колонке.
Сложностьпри отображении данных способом, который вы можете описать логически, но который не может быть легко получен с использованием запроса, обычно подразумевается, что структура базы данных является субоптимальной.
Для вашей конкретной настройки я лично рекомендую следующую структуру:
+---------------+ +----------+------------+
| Players | | PlayerID | PlayerName |
+---------------+ +----------+------------+
| PlayerID (PK) | | 100 | Mark |
| PlayerName | | 101 | Brian |
+---------------+ | 102 | Mike |
+----------+------------+
+-------------+ +--------+----------+
| Teams | | TeamID | TeamName |
+-------------+ +--------+----------+
| TeamID (PK) | | 1 | Team1 |
| TeamName | | 2 | Team2 |
+-------------+ +--------+----------+
+-------------------+ +--------+--------------+----------+
| TeamPlayers | | TeamID | TeamPlayerID | PlayerID |
+-------------------+ +--------+--------------+----------+
| TeamID (PK) | | 1 | 1 | 100 |
| TeamPlayerID (PK) | | 1 | 2 | 101 |
| PlayerID (FK) | | 2 | 1 | 102 |
+-------------------+ | 2 | 2 | 102 |
+--------+--------------+----------+
Используя этот метод, вы можете использовать агрегирование условий или перекрестный запрос, поворачивающийся на TeamPlayerID
, чтобы получить каждый из ваших столбцов, и вы не будете ограничены двумя столбцами.