假设我有两张桌子:
有两列的表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
像我期望的那样添加 for set 的行为?