我想加入两个课程,如课程和课程分配给学生。 在课程表数据示例
课程表:
id | name
1 | computer fundamental
2 | programming with c
3 | electrical engineering
3 | neural network
course_to_student表:
course_id | std_id
1 | 1
2 | 2
3 | 1
然后对于std id 1:结果应该是
和std_id 2结果应该是
我该怎么做?
答案 0 :(得分:0)
$std_id =1;
SELECT t1.course_id, t1.course_name
FROM table t1, table t2
WHERE t1.course_id = t2.course_id
AND t2.std_id <> $std_id
答案 1 :(得分:0)
我认为您只是在两个表之间寻找LEFT JOIN
。如果我正确阅读了您的预期输出,您想要确定当前注册的学生
SELECT c.name
FROM course c
LEFT JOIN course_to_student s
ON c.id = s.course_id
WHERE s.course_id IS NULL AND
s.std_id = 1 -- or s.std_id = 2, etc.
答案 2 :(得分:0)
您可以使用NOT IN
$std_id =1;
SELECT *
FROM course
WHERE id NOT IN ( SELECT course_id
FROM course_to_student
WHERE std_id = $std_id )