У меня есть следующие таблицы:Как соединить эти таблицы в SQL
match
id | rival_team
----------------------
| 1 | chelsea fc
| 2 | real madrid
player
ID | name | last_name |
---------------------------------
| 1 | John | Doe |
| 2 | Peter | Williams |
called_up_players
match_id | player_id | substitution_id |
---------------------------|-------------------|
| 1 | 1 | 1 |
| 1 | 2 | NULL |
substitution
| id | match_id | substitute_player_id | replaced_player_id |
---------------------------|----------------------|--------------------|
| 1 | 1 | 1 | 2 |
У меня есть оператор, следующий SQL
SELECT called_up_players.match_id, match.rival_team, player.name,
player.last_name, substitution.id
FROM called_up_players, substitution, player, match
WHERE called_up_players.substitution_id = substitution.substitute_player_id
AND player.id = called_up_players.substitution_id;
и следующий вывод:
match_id| rival_team | name | last_name | substitution_id
--------+------------+----------+-----------+-----------
1 | chelsea fc | John | Doe | 1
1 | real madrid| John | Doe | 1
(2 rows)
Однако, Я хочу, чтобы выход был как
match_id| rival_team | name | last_name | substitution_id
--------+------------+----------+-----=-----+----------------
1 | chelsea fc | John | Doe | 1
2 | real madrid| John | Doe | NULL
показать все совпадения, в которых Джон Доу был вызван в список. Независимо от того, что игрок участвовал в замещении, я хотел бы иметь столбцы для имени и substitution_id
Я думаю, что могу добиться этого, используя JOINS, но я не знаю, как присоединиться к столам, поэтому я могу иметь нечто похожее к вышеуказанному выходу. Я пробовал много заявлений, я получил ошибки.
Какие ошибки у вас возникли? –
Должно ли 'match_id' в вашем примере быть 1 для' real madrid'? То есть 'chelsea fc' играют' real madrid' в match_id = 1. –
таких ошибок, как «Есть запись для таблицы», но на эту ссылку нельзя ссылаться из этой части запроса »... но я этого явно не сказал потому что я действительно не знаю, как работают объединения. Я ожидаю некоторых рекомендаций – c2J