SQL连接2个表,其中日期列匹配

时间:2016-08-07 20:47:16

标签: mysql join

我有两个表,两个表都有一个日期列 - 如果行日期匹配,我想要做的就是加入表。

我尝试过以下代码:

SELECT * 
  FROM bats 
  LEFT 
  JOIN weather 
    ON 'weather.GMT' = 'bats.startDate'

这会将表连接到一个新表中,其中包含bats的所有值,但是天气的值为null。

我想要的是以下内容,例如:

observationID   |  startDate | commonName |    GMT    | WindSpeed | Event | Temp
------------------------------------------------------------------
       1            12/12/2001       Natterer        12/12/2001       25         Rain
       2            13/12/2001       Brown Eared     13/12/2001       12        Cloudy
      Null             Null             Null         14/12/2001       14         Rain

上面的表格连接是天气表总是有1个条目,但是可以是1个,没有或几个条目用于蝙蝠表。

感谢任何帮助。

凯文

2 个答案:

答案 0 :(得分:0)

你以相反的方式做到了,试试这个:

SELECT * 
FROM weather AS w
LEFT JOIN bats AS b ON (w.GMT = b.startDate)

顺便说一句,请避免列名中的大写字母,并始终使用下划线表示空格,这是常规:)

答案 1 :(得分:0)

看看草莓的评论

  

'weather.GMT'是一个字符串

交换's(标签上方的键),你就会笑掉。或者你也可以删除引用标记,就像在Juan Alberto的回答中那样,这样也可以。如果列名称中有空格

,则只需要使用后引号(`)