【发布时间】:2012-03-13 18:20:18
【问题描述】:
我知道现在很多人会冲我大喊大叫。但据我了解
假设我有两张桌子
学生
student_id
firstname
surname
课程
course_id
name
student_id
所以课程表有一个外键STUDENT_ID,这意味着一个学生可以有很多课程是吗?
好的。
据我了解,如果我想选择与一个学生相关的所有课程,我可以执行以下任一操作:
SELECT *
FROM courses AS c, students AS s
WHERE c.student_id = s.student_id
AND s.student_id = 1;
或
SELECT *
FROM courses AS c
JOIN students AS s ON c.student_id = s.student_id AND s.student_id = 1;
那么,当 JOIN 与 WHERE 基本完全相同时,JOIN 的意义何在?
我知道我的理解是错误的,但我找不到简单的答案。
请赐教!
【问题讨论】:
-
没错,那些查询是同义词。在此处查找隐式连接与显式连接。还要更改您的问题的标题,这是不准确的。请注意,如果这是 INNER JOIN 的同义词,则不是 OUTER JOIN。
-
我认为 OP 在联接和约束之间感到困惑,请参阅上面提到的案例了解联接和 where 子句之间的区别,并查看 Sapan 的答案以了解约束的使用。
-
@MitchWheat "鞋子有什么意义?"
-
@rrrr: 保护踩在头上的人的脚
-
@rrrr:其实我想说
what's所指的名词是point而不是shoes,而point是单数而不是复数。因此,What is应该是单数,而不是复数。What are the purposes of shoes?很好,但What are the purpose of shoes?似乎不正确。
标签: sql