zoukankan      html  css  js  c++  java
  • 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)

  • 相关阅读:
    上海python14期第一次周考
    day05总结
    day05作业
    day04总结
    js判断是安卓还是Ios
    移动端 --- 阻止浏览器点击图片会预览的方法
    meta标签禁止打电话 转载
    mac 常用命令
    ajax. 通过后台接口 渲染数据
    vue prop
  • 原文地址:https://www.cnblogs.com/cy163/p/1329867.html
Copyright © 2011-2022 走看看