Cross Join
- Cross joins 是 2 個 tables 裡面的全部所有組合
- 使用時機 :
- 想知道黑色外套的 S, M, L, XL 個別幾件, 這個時候就可以用 Cross Joins
回傳的 rows 會是 nxm, 假設 table1 有 n rows, table2 有 m rows
Syntax :
SELECT * FROM t1
CROSS JOIN t2;
並沒有 on 或者是 using clause
- 如果 table1 和 table2 有 relationship 的情況下, 加上 where clause 跟 cross join 就會變成 inner join
SELECT * FROM t1
CROSS JOIN t2
WHERE t1.id = t2.id;
- 可以知道每一家 store 全部的產品, 還有價格
select *
from stores s
cross join products p
;
- 想要比較清楚的排列, 就可以使用 group by
select *
from stores s
cross join products p
group by s.store_name, p.product_name
;
留言
張貼留言