可以说我有两个表:为什么MySQL会加入循环集?
表english
其中有两列,id
和letter
:
1,a
2,b
3,c
表greek
其中有两列,id
和letter
:
1,alpha
2,beta
3,gamma
好所以我执行查询select * from english limit 1,5
,我得到:
2,b
3,c
这是我所期望的。现在,我尝试select english.id,english.letter,greek.letter from english join greek on greek.id=english.id order by english.id asc limit 1,5
2,b,beta
3,c,gama
1,a,alpha
2,b,beta
3,c,gama
什么!为什么这是圆形的?好了好了,这下查询的工作,我所期望的:
select english.id,english.letter,greek.letter from english join greek on greek.id=english.id group by english.id order by english.id asc limit 1,5
2,b,beta
3,c,gama
那么这到底是怎么回事?为什么我需要为设置添加group by english.id
以符合我的预期?
使用LIMIT子句时没有ORDER BY不作任何感。 –
@Vincent Savard同意这是一个错字,我通过真正的查询命令。 – rook