该数据库在这里:http://sqlfiddle.com/#!9/bf0171两个表上的SQL查询;
我想找到“Prof.David”类的所有学生。然而,查询的结果是:
Select Student.name from Student, Teacher where Teacher.s_id =Student.id and Teacher.name="Prof. David";
+------+
| name |
+------+
| Tom |
| John |
| Mary |
| Tom |
| John |
| Mary |
+------+
我想结果应该是“汤姆”,只有“约翰”。有什么问题?
这实际上与联接作品: “这里Teacher.s_id = Student.id和Teacher.name =” 教授。大卫“,它会正确返回”Tom“和”John“,而不使用”JOIN“ – user697911
您可以隐式加入到WHERE子句中,但我不推荐它。如果需要执行左连接,会发生什么?你的WHERE标准有一个OR语句吗?有很多东西可能会出错,明确使用JOIN将有助于减少事故。 –
@ user697911 - 为了讨论的缘故,这里是一个来自不同StackExchange的线程:http://程序员.stackexchange.com/q/78225 –