MySQL INTERSECT 替换 INNER JOIN - 请解释

标签 mysql

我已经弄乱了一段时间,似乎无法弄清楚如何将以下代码从 INTERSECT 形式(MySQL 不支持)转换为 INNER JOIN 形式。

如果有人可以将以下代码转换为 INNER JOIN 我想我可以从示例中理解。提前致谢!

(SELECT Student.SSN, First_Name, Last_Name 
FROM Student, Enrolls 
WHERE Enrolls.SSN = Student.SSN AND CourseNo='CSC132')

INTERSECT

(SELECT Student.SSN, First_Name, Last_Name 
FROM Student, Enrolls 
WHERE Enrolls.SSN = Student.SSN AND CourseNo='CSC134');

最佳答案

SELECT  SSN, First_Name, Last_Name 
FROM    student s
WHERE   (
        SELECT  COUNT(*)
        FROM    enrolls e
        WHERE   e.ssn = s.ssn
                AND e.courseNo IN ('CSC132', 'CSC134')
        ) = 2

我希望你不是真的使用 SSNPRIMARY KEY

关于MySQL INTERSECT 替换 INNER JOIN - 请解释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5789484/

相关文章:

php - 显然,从 PHP 发送时此查询中存在 SQL 语法错误,但它在 PHPMyAdmin 上运行良好

Mysql Varchar 到 GMT Date 时间值的转换

php - 显示它们之前如何从数据库中订购获取的对象?

c# - 使用 C# 调用 php 脚本 (Unity)

php - 如何显示表中的值、修改它们、再次保存它们

java - 如何为具有 n :m relationship and multiple primary keys 的 MySQL 数据库表配置实体类

javascript - bootstrap formvalidation.io 远程验证器 MySQL PHP

Java线程安全的数据库连接

mysql - ANSI-SPARC实用讲解

php - MySQL 插入 : Avoid duplicates w/multiple cols