2016-04-23 57 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

是的,我知道这看起来更合适答案 –