为第一个表中的每一行选择第二个表中的多个行

时间:2012-08-09 15:45:09

标签: mysql sql

理念: 我有两个表:日期表(CALENDAR)和位置表(总共6个位置)。我想做一个将两个表连接在一起的select语句,这样每个日期就可以得到6行,每个日期行都为每个位置重复。例如,如果我从CALENDAR选择8月21日,22日和23日的位置'​​纽约','西班牙'和'密歇根',我希望返回的行看起来像:

August 21 - New York 
August 21 - Spain
August 21 - Michigan
August 22 - New York
August 22 - Spain
August 22 - Michigan
August 23 - New York
August 23 - Spain
August 23 - Michigan

问题:我只有有限的SQL经验,所以我不知道如何进行这种连接。任何人都可以提供代码样本来复制相同的行为吗?

3 个答案:

答案 0 :(得分:0)

您可以使用始终为真的条件进行内部联接

select t2.date, t2.city from t1
inner join t2 on 1 = 1

或进行交叉加入

select t2.date, t2.city from t1, t2

答案 1 :(得分:0)

根本不是连接 - 两个表之间没有关系。所以......

Select Date, Location
FROM Calendar, Locations

答案 2 :(得分:0)

我希望这适合你。

mysql> select * from tempcity,tempdate where tempcity.jcity in ('New York','Spai
n','Michigan') and tempdate.jdate in ('Aug 21','Aug 22', 'Aug 23') order by temp
date.jdate;

tempcity是table-其中包含jcity列。 tempdate是table-其中有jdate列。