• MySQL 交集 实现方法


    1

    MySQL中如何实现以下SQL查询
    (SELECT S.Name
    FROM STUDENT S, TRANSCRIPT T
    WHERE S.StudId = T.StudId AND T.CrsCode = 'CS305')
    INTERSECT
    (SELECT S.Name
    FROM STUDENT S, TRANSCRIPT T
    WHERE S.StudId = T.StudId AND T.CrsCode = 'CS315')

    请各位不吝赐教,小弟先谢过~

    解:

    取交集

    select a.* from
    (
    SELECT S.Name
    FROM STUDENT S, TRANSCRIPT T
    WHERE S.StudId = T.StudId AND T.CrsCode = 'CS305'
    )
    as a
    cross join
    (
    SELECT S.Name
    FROM STUDENT S, TRANSCRIPT T
    WHERE S.StudId = T.StudId AND T.CrsCode = 'CS315'
    )
    as b on a.Name = b.Name;

    2.

    SELECT * FROM (
    SELECT DISTINCT col1 FROM t1 WHERE...
    UNION ALL
    SELECT DISTINCT col1 FROM t1 WHERE...
    ) AS tbl
    GROUP BY tbl.col1 HAVING COUNT(*) = 2
    3.

    交集:

    SELECT * FROM table1 AS a JOIN table2 AS b ON a.name =b.name

    举例:

    表a:
    FieldA
    001
    002
    003

    表b:
    FieldA
    001
    002
    003
    004

    请教如何才能得出以下结果集,即表A, B行交集
    FieldA
    001
    002
    003

    答案:select a.FieldA from a inner join b on a.FieldA=b.FieldA

    差集:

    NOT IN 表示差集
    SELECT * FROM table1 WHERE name NOT IN (SELECT name FROM table2)

  • 相关阅读:
    函数对象中的prototype属性
    undefined和null的区别
    访问修饰符
    继承
    静态成员和实例成员的区别
    js模拟Trim()方法
    连接池的执行原理
    Javascript中的= =(等于)与= = =(全等于)区别
    数据库中创建约束
    KM算法入门
  • 原文地址:https://www.cnblogs.com/cy163/p/1329867.html
Copyright © 2020-2023  润新知