Skip to content

2339. All the Matches of the League πŸ”’

DifficultyEasy

Description

Table: Teams

+-------------+---------+
| Column Name | Type    |
+-------------+---------+
| team_name   | varchar |
+-------------+---------+
team_name is the column with unique values of this table.
Each row of this table shows the name of a team.

 

Write a solution to report all the possible matches of the league. Note that every two teams play two matches with each other, with one team being the home_team once and the other time being the away_team.

Return the result table in any order.

The result format is in the following example.

 

Example 1:

Input: 
Teams table:
+-------------+
| team_name   |
+-------------+
| Leetcode FC |
| Ahly SC     |
| Real Madrid |
+-------------+
Output: 
+-------------+-------------+
| home_team   | away_team   |
+-------------+-------------+
| Real Madrid | Leetcode FC |
| Real Madrid | Ahly SC     |
| Leetcode FC | Real Madrid |
| Leetcode FC | Ahly SC     |
| Ahly SC     | Real Madrid |
| Ahly SC     | Leetcode FC |
+-------------+-------------+
Explanation: All the matches of the league are shown in the table.

Solutions

Solution 1

Thinking

The league needs every ordered pair of distinct teams. A self-join of \(\textit{Teams}\) excluding equal names lists them.

Take the Cartesian product of \(\textit{t1}\) and \(\textit{t2}\) with \(\textit{t1}.\textit{team\_name} \ne \textit{t2}.\textit{team\_name}\) as home and away.

1
2
3
4
5
# Write your MySQL query statement below
SELECT t1.team_name AS home_team, t2.team_name AS away_team
FROM Teams AS t1
JOIN Teams AS t2
WHERE t1.team_name != t2.team_name;

Comments