从 3 个表中获取所有结果而不重复

Getting all results from 3 tables without repetition

我有 3 个表:sportsvenuesinstructors,它们都有一个 id 和一个 name。我不想使用 3 个单独的 SELECT * FROM table 来获取结果,因此结果类似于:

+----------+------------+----------+------------+---------------+-----------------+
| sport_id | sport_name | venue_id | venue_name | instructor_id | instructor_name |
+----------+------------+----------+------------+---------------+-----------------+
|        1 | Sport1     |        1 | Venue1     |             1 | Instructor1     |
|        2 | Sport2     |        2 | Venue2     |             2 | Instructor2     |
|        3 | Sport3     |          |            |             3 | Instructor3     |
|        4 | Sport4     |          |            |               |                 |
+----------+------------+----------+------------+---------------+-----------------+

我试过了

SELECT * FROM sports, venues, instructors

但是有很多重复。

编辑:这 3 个表之间没有任何关系。

虽然我发现在一个查询中获取所有值的用途有限,但您始终可以使用 UNION ALL 获取所有值;

SELECT sport_id id,      sport_name name,      'sport' type      FROM sports
UNION ALL 
SELECT venue_id id,      venue_name name,      'venue' type      FROM venues
UNION ALL 
SELECT instructor_id id, instructor_name name, 'instructor' type FROM instructors

这将以以下格式给出输出;

id    name           type
-------------------------------
1     sport1         sport
2     sport2         sport
3     sport3         sport
4     sport4         sport

1     venue1         venue
2     venue2         venue

1     instructor1    instructor
2     instructor2    instructor
3     instructor3    instructor