• 1623. 三人国家代表队


    SQL架构

    表: 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)

    使用上述条件,编写SQL查询语句来找到所有可能的三人国家代表队组合。

    查询结果接受任何顺序。

    查询结果格式如下例。

    示例 1:

    1. 输入:
    2. 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) --> 可能的组合.

    ,:

    1. select
    2. a.student_name member_A,b.student_name member_B,c.student_name member_C
    3. from
    4. SchoolA a,SchoolB b,SchoolC c
    5. where a.student_id != b.student_id and a.student_name != b.student_name and a.student_id != c.student_id and a.student_name != c.student_name and c.student_id != b.student_id and c.student_name != b.student_name

    join:

    1. select
    2. a.student_name member_A,b.student_name member_B,c.student_name member_C
    3. from
    4. SchoolA a join SchoolB b join SchoolC c
    5. on a.student_id != b.student_id and a.student_name != b.student_name and a.student_id != c.student_id and a.student_name != c.student_name and c.student_id != b.student_id and c.student_name != b.student_name

    join  + ,:

    1. select
    2. a.student_name member_A,b.student_name member_B,c.student_name member_C
    3. from
    4. SchoolA a join (SchoolB b , SchoolC c )
    5. on a.student_id != b.student_id and a.student_name != b.student_name and a.student_id != c.student_id and a.student_name != c.student_name and c.student_id != b.student_id and c.student_name != b.student_name

  • 相关阅读:
    Vim命令总结
    Redis中间件学习笔记(四)(应用场景面试)
    如何实现MATLAB与Simulink的数据交互
    R语言使用plot函数可视化数据散点图,使用pch参数设置数据点类型、fg参数自定义设置可视化图像边框颜色
    java毕业设计疫情防控信息管理系统Mybatis+系统+数据库+调试部署
    神经网络与强化学习:揭示AI的超能力
    JAVA 版多商家入驻 直播带货 商城系统 B2B2C 商城免费搭建之 B2B2C产品概述
    Jekyll如何自定义摘要
    [附源码]java毕业设计濒危物种科普系统
    vue2项目使用ant design vue组件库table组件时设置column根据接口返回的字段值显示不同内容
  • 原文地址:https://blog.csdn.net/m0_69157845/article/details/125533862