MySQL中是否存在“全部出现”(set division?)操作?

时间:2011-09-24 19:08:11

标签: mysql sql database

很抱歉这个简单的问题,但我不知道正确的方法来获得有用的结果。我想知道MySQL中是否有一个支持“拥有所有”关系的函数。我所指的认为这个词是设置除法(当我在手册页中查找除法时,我只看到MySQL中的精确数学除法)。因此,例如,如果我有学生和课程的关系,我可能想要检索所有学生正在参加的课程列表(也许,课程ID号出现在每个学生下面,或类似的东西)。我的问题有意义吗?我可以提出一个不同的查询来完成工作,但如果我能用简单的内置函数简化它,那将是非常好的,你知道吗?

1 个答案:

答案 0 :(得分:2)

不,没有。有关方法的详细介绍,请参阅Divided We Stand: The SQL of Relational Division。本文以SQL Server为中心,但GROUP BY ... HAVING COUNT或双NOT EXISTS的两种方法仍然有效。

对于精确的关系除法(没有余数)GROUP_CONCAT可以派上用场。