@Jazper

Как сделать запрос в postgres?

Есть 2 таблицы
users:
 id SERIAL PRIMARY KEY,
 username VARCHAR(40) NOT NULL,
 rating INTEGER

и
games:
 id SERIAL PRIMARY KEY,
 player1id INTEGER NOT NULL,
 player2id INTEGER NOT NULL,
 score1 INTEGER NOT NULL,
 score2 INTEGER NOT NULL


Как правильно организовать связь таблиц? Как сделать запрос возвращающий примерно такую структуру -
[{ gameid,
 score1,
 score2,
 player1: [{ id, username, rating }],
 player2: [{ id, username, rating }]
}]


Заранее большое спасибо за помощь!

UPD: решающий задачу запрос (спасибо @chlp) -
SELECT games.*, row_to_json(player1) AS player1, row_to_json(player2) AS player2 FROM games
INNER JOIN users player1 ON (games.player1id = player1.id)
INNER JOIN users player2 ON (games.player2id = player2.id)
  • Вопрос задан
  • 309 просмотров
Решения вопроса 1
chlp
@chlp
фулстек
Примерно так
SELECT games.id AS gameid, player1.id AS player1_id, player2.id AS player2_id, games.score1, games.score2
FROM games
INNER JOIN users player1 ON (games.player1id = users.id)
INNER JOIN users player2 ON (games.player2id = users.id)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы