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)

  • 相关阅读:
    外设简述
    代C语言上机实践
    css动画效果
    css滑动门原理
    css整理
    html
    html单词
    倒计时.js
    随机方块
    求字符串出现次数和最大值
  • 原文地址:https://www.cnblogs.com/cy163/p/1329867.html
Copyright © 2011-2022 走看看