任何人都知道它可能如何查詢: 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