MySQL复杂合并两个不同日期格式的表
我这里有一个类似于小提琴的MySQL表: 另一个与API不同: 我想要的是这样的结果(每周):MySQL复杂合并两个不同日期格式的表,mysql,date,merge,tabular,Mysql,Date,Merge,Tabular,我这里有一个类似于小提琴的MySQL表: 另一个与API不同: 我想要的是这样的结果(每周): +----------+----------+----------+------------+------------+------------+ | date | action | position | name | day | ID | +----------+----------+----------+------------+-------
+----------+----------+----------+------------+------------+------------+
| date | action | position | name | day | ID |
+----------+----------+----------+------------+------------+------------+
|17.06.2013| holiday | home | Winkler,Mr.| Monday | 0 |
|18.06.2013| holiday | home | Winkler,Mr.| Tuesday | 1 |
|19.06.2013| work | NYC | Winkler,Mr.| Wednesday | 2 |
|20.06.2013| work | NYC | Winkler,Mr.| Thursday | 3 |
|21.06.2013| work | NYC | Winkler,Mr.| Friday | 4 |
|22.06.2013| work | NYC | Winkler,Mr.| Saturday | 5 |
|23.06.2013| weekend | home | Winkler,Mr.| Sunday | 6 |
+----------+----------+----------+------------+------------+------------+
你们当中有人有过类似的经历吗
由于第二个表中缺少日期,我无法正确合并它们。试试这个我已经加入了您的表,并注意到
DATETIME
字段的类型为text
,这太糟糕了,无法将日期另存为文本。这应该是date
或DATETIME
,但我已经习惯了转换作为日期,在下面的查询中,我使用了mydates
的左连接,还使用了CASE来创建自定义条件,您必须提供一个日期,以便获取该日期的记录
SELECT md.`mydate`,
(CASE WHEN g.`ACTION` IS NULL && DAYNAME(md.`mydate`) ='Sunday' THEN 'Weekend'
WHEN g.`ACTION` ='0' THEN g.`ACTIONTEXT`
WHEN g.`ACTION` IS NULL THEN 'holiday'
ELSE 'holiday' END) `action`
,
(CASE WHEN g.`POSITION` IS NULL THEN 'Home' ELSE g.`POSITION` END)`position` ,
g.`DRIVERNAME`,DAYNAME(md.`mydate`),g.`ID` FROM `mydates` md
LEFT JOIN `geoimportroot` g ON (md.`mydate`= STR_TO_DATE(g.`DATETIME`, "%d.%m.%Y") )
WHERE WEEK(md.`mydate`)= WEEK('2013-06-17')
我希望这就是你要找的