Создать вид с одинаковыми столбцами - PullRequest
0 голосов
/ 31 октября 2018
CREATE TABLE `player` (
  `id` int(11) NOT NULL,
  `id_team` int(11) NOT NULL,
  `name` varchar(40) NOT NULL,
  `img` text NOT NULL
)
CREATE TABLE `matchs` (
  `id` int(11) NOT NULL,
  `date` datetime NOT NULL,
  `player_1` int(11) NOT NULL,
  `player_2` int(11) NOT NULL
)
CREATE TABLE `score` (
  `id_matchs` int(11) NOT NULL,
  `id_player` int(11) NOT NULL,
  `score` int(11) NOT NULL
)

Я пытаюсь создать представление, чтобы получить что-то вроде этого:

|img_p1|name_p1|score_p1|score_p2|name_p2|img_p1|
+------+-------+--------+--------+-------+------+
|      |       |        |        |       |      |
|      |       |        |        |       |      |

Но я не знаю, с чего начать, поскольку есть 2 одинаковых столбца для img, name и score.

EDIT:

Так что я смог решить проблему благодаря mdem7. Вот код:

SELECT p1.img, p1.name, s1.score, s2.score, p2.nom, p2.img
FROM player p1, player p2, matches m, score s1, score s2
WHERE p1.id = s1.id_player AND m.id = s1.id_matchs AND p2.id = s2.id_player
AND m.id = s2.id_matchs AND m.player_1 = p1.id AND m.player_2 = j2.id;

1 Ответ

0 голосов
/ 31 октября 2018

Как и в вашем примере, вам нужно alias имена столбцов

Ниже приведен неполный SQL, поскольку дана ограниченная информация, но Вы можете играть с ним, чтобы создать свой собственный.

select p1.img as img_p1, p1.name as name_p1, s1.score as score_p1,
       s2.score as score_p2, p2.name as name_p2, p2.img as img_p2
from player p1, player p2, matches m1, matches m2, scores s1, scores s2
where p1.id = s1.id_player and m1.id = s1.id_matches
      p2.id = s2.id_player and m2.id = s2.id_matches
...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...