任何人都知道它可能如何查询: SELECT a.id, b.id FROM a CROSS JOIN b
和 SELECT a.id, b.id FROM b CROSS JOIN a
返回相同的结果?在这两种情况下,来自不太多的表格的记录被分配到更多的表格。我想是这样的:CROSS JOIN无法正常工作
`| a.id | b.id |
-------+-----+
1 | q |
1 | w |
1 | e |
1 | r |
2 | q |
2 | w |
2 | e |
2 | r |
`
但即时得到结果是这样的:
`| a.id | b.id |
-------+-----+
1 | q |
2 | q |
1 | w |
2 | w |
1 | e |
2 | e |
1 | r |
2 | r |
`
它还挺奇怪的是,MySQL自动选择交叉的顺序加入提交取决于他们众多。我知道我可以使用ORDER BY,但我需要通过CROSS JOIN来完成。
还有更复杂的问题,我想每a.id获得10条记录。我看到了解决方案:在SELECT子句中使用IF条件进行行计数。该行计数需要按原始结果中的a.id排序的行(不包括order by)。有没有其他解决方案来做到这一点?
通常,除非您按部分提供订单,否则不能保证输出订单。 – Tim3880
交叉连接工作得很好 – Strawberry