困难的查询 - 如此接近但尚未完全存在

时间:2012-04-23 20:26:11

标签: mysql join

最简单的解释方法是为你们画出两张桌子 - 所以这里就是..

sl_project_course

project_id   |    course_id
50                    1

sl_course
professor_id |    course_id      | course_name
1                     1                 "history"
1                     2                 "law"
1                     3                 "art"
1                     2                 "law"

我已有的信息

  • Project_id = 50
  • Professor_id = 1

我想要的是什么:

  

我想要教授所教授的所有课程,在哪里   course_id与手头的项目无关(在这种情况下)   手头的项目是1 - 如上所示。

因此,我想从查询中返回的数据是:

2                 "law"
3                 "art"

**我的尝试:**

$sql_course_not_in_project = "SELECT C.course_id, C.course_subject
FROM sl_course C
LEFT OUTER JOIN sl_project_course PC on PC.project_id = 50
WHERE C.course_id <> PC.course_id AND C.professor_id = 1";

这是有效的,除非sl_project_course中有两行,查询不再正常工作。

我感谢任何帮助!

谢谢,

埃文

1 个答案:

答案 0 :(得分:2)

SELECT c.course_id, c.course_subject
    FROM sl_course c
        LEFT JOIN sl_project_course pc
            ON c.course_id = pc.course_id
                AND pc.project_id = 50
    WHERE c.professor_id = 1
        AND pc.course_id IS NULL