返回介绍

solution / 1600-1699 / 1623.All Valid Triplets That Can Represent a Country / README

发布于 2024-06-17 01:03:16 字数 3493 浏览 0 评论 0 收藏 0

1623. 三人国家代表队

English Version

题目描述

表: SchoolA

+---------------+---------+
| Column Name   | Type  |
+---------------+---------+
| student_id  | int   |
| student_name  | varchar |
+---------------+---------+
student_id 是该表具有唯一值的列
表中的每一行包含了学校 A 中每一个学生的名字和 ID
所有 student_name 在表中都是独一无二的

 

表: SchoolB

+---------------+---------+
| Column Name   | Type  |
+---------------+---------+
| student_id  | int   |
| student_name  | varchar |
+---------------+---------+
student_id 是该表具有唯一值的列
表中的每一行包含了学校 B 中每一个学生的名字和 ID
所有 student_name 在表中都是独一无二的

 

表: SchoolC

+---------------+---------+
| Column Name   | Type  |
+---------------+---------+
| student_id  | int   |
| student_name  | varchar |
+---------------+---------+
student_id 是该表具有唯一值的列
表中的每一行包含了学校 C 中每一个学生的名字和 ID
所有 student_name 在表中都是独一无二的

 

有一个国家只有三所学校,这个国家的每一个学生只会注册 一所学校

这个国家正在参加一个竞赛,他们希望从这三所学校中各选出一个学生来组建一支三人的代表队。例如:

  • member_A 是从 SchoolA 中选出的
  • member_B 是从 SchoolB 中选出的
  • member_C 是从 SchoolC 中选出的
  • 被选中的学生具有不同的名字和 ID(没有任何两个学生拥有相同的名字、没有任何两个学生拥有相同的 ID)

使用上述条件,编写一个解决方案来找到所有可能的三人国家代表队组合。

返回结果 无顺序要求

结果格式如下示例所示。

 

示例 1:

输入:
SchoolA table:
+------------+--------------+
| student_id | student_name |
+------------+--------------+
| 1      | Alice    |
| 2      | Bob      |
+------------+--------------+
SchoolB table:
+------------+--------------+
| student_id | student_name |
+------------+--------------+
| 3      | Tom      |
+------------+--------------+
SchoolC table:
+------------+--------------+
| student_id | student_name |
+------------+--------------+
| 3      | Tom      |
| 2      | Jerry    |
| 10     | Alice    |
+------------+--------------+
输出:
+----------+----------+----------+
| member_A | member_B | member_C |
+----------+----------+----------+
| Alice  | Tom    | Jerry  |
| Bob    | Tom    | Alice  |
+----------+----------+----------+
解释:
让我们看看有哪些可能的组合:
- (Alice, Tom, Tom) --> 不适用,因为member_B(Tom)和member_C(Tom)有相同的名字和ID
- (Alice, Tom, Jerry) --> 可能的组合
- (Alice, Tom, Alice) --> 不适用,因为member_A和member_C有相同的名字
- (Bob, Tom, Tom) --> 不适用,因为member_B和member_C有相同的名字和ID
- (Bob, Tom, Jerry) --> 不适用,因为member_A和member_C有相同的ID
- (Bob, Tom, Alice) --> 可能的组合.

解法

方法一

# Write your MySQL query statement below
SELECT
  a.student_name AS member_A,
  b.student_name AS member_B,
  c.student_name AS member_C
FROM
  SchoolA AS a,
  SchoolB AS b,
  SchoolC AS c
WHERE
  a.student_name != b.student_name
  AND a.student_name != c.student_name
  AND b.student_name != c.student_name
  AND a.student_id != b.student_id
  AND a.student_id != c.student_id
  AND b.student_id != c.student_id;

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文