2016-04-23 84 views
1

客戶表:日期根據客戶

| id | name | 
--------------------- 
| 1 | John | 
| 2 | Mike | 

日曆表:

| date  | 
-------------------- 
| 2015-01-01 | 
| 2015-01-02 | 
| 2015-01-03 | 

問題:我怎樣才能得到這樣的結果?

期望結果:

| name | date  | 
------------------------ 
| John | 2015-01-01 | 
| John | 2015-01-02 | 
| John | 2015-01-03 | 
| Mike | 2015-01-01 | 
| Mike | 2015-01-02 | 
| Mike | 2015-01-03 | 
+0

下面的兩個答案是相同的,如EXPLAIN EXTENDED其次是SHOW WARNINGS會顯示,所以選擇任何你喜歡的。通常,我們希望避免使用逗號連接語法,因爲它過於陳舊,並且在更復雜的查詢中不能很好地發揮作用。 – Strawberry

回答

2

使用CROSS JOIN

SELECT 
    Customers.name, 
    Calendar.date 
FROM Customers 
CROSS JOIN Calendar 
1

使用下面的查詢來獲得期望的結果

select t1.name as name,t2.date as date 
from Coustomers t1 
join Calendar t2 on 1=1 
+0

感謝您的使用。但對不起,我會選擇回答CROSS JOIN的人,因爲我認爲這是'正確的方式',而你的回答是黑客。 –

+0

@KenthJohnIsrael雙方都是對的,選擇你喜歡的任何一種。但請不要低估那些試圖幫助你的人。 – Shaharyar

+1

是的,我知道這看起來更合適答案 –