从 3 个表中获取所有结果而不重复
Getting all results from 3 tables without repetition
我有 3 个表:sports
、venues
和 instructors
,它们都有一个 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
我有 3 个表:sports
、venues
和 instructors
,它们都有一个 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