Php Sql联接以跳过匹配的值
我想加入两个表,如课程和课程分配给学生。 进程内表数据示例 课程表:Php Sql联接以跳过匹配的值,php,sql,Php,Sql,我想加入两个表,如课程和课程分配给学生。 进程内表数据示例 课程表: id | name 1 | computer fundamental 2 | programming with c 3 | electrical engineering 3 | neural network 课程至学生表: course_id | std_id 1 | 1 2 | 2 3 | 1 那么对于std id 1:Result应该是 2:用c语言编程 4:神
id | name
1 | computer fundamental
2 | programming with c
3 | electrical engineering
3 | neural network
课程至学生表:
course_id | std_id
1 | 1
2 | 2
3 | 1
那么对于std id 1:Result应该是
- 2:用c语言编程
- 4:神经网络
- 1:计算机基础
- 3:电气工程
- 4:神经网络
$std\u id=1;
$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
选择t1.course\u id,t1.course\u name
从表t1到表t2
其中t1.course\u id=t2.course\u id
和t2.std_id$std_id
我想您只是在两个表之间寻找一个左连接。如果我正确阅读了您的预期输出,那么您希望识别某个给定学生当前未注册的课程
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.
您可以在
$std_id =1;
SELECT *
FROM course
WHERE id NOT IN ( SELECT course_id
FROM course_to_student
WHERE std_id = $std_id )
std id:1与课程id 1和3关联,但您需要2和4。也就是说,该课程不是该学生选择的,对吗?所以你想知道哪些课程没有分配给student@saddam Hossairy dude神经网络应该是4。是的,我想知道哪些课程没有分配给学生-Amit Guadines,但你的代码不起作用。我的完整sql代码是SELECT course。course\U name,course\U ENTROL\U student.std\U id FROM
course
LEFT JOIN course\U ENTROL\U student ON course\U ENTRUMER\U ENTRUMER ON course\U ENTRUMER\U ENTRUMER。course\U id=course.id更改代码并获取输出使用实际数据更新问题,格式为表格。然后,如果可以的话,我可以更新我的答案。谢谢你的评论,但我无法更新我的问题,因为我的分数不够。然后添加一个链接到包含实际数据的屏幕截图。课程表课程注册表感谢你检查我的问题。